Я хотел бы повторить это в python:
gvimdiff <(hg cat file.txt) file.txt
(hg cat file.txt выводит самую последнюю зафиксированную версию file.txt)
Я знаю, как передать файл в gvimdiff, но он не примет другой файл:
$ hg cat file.txt | gvimdiff file.txt -
Too many edit arguments: "-"
Как добраться до части Python ...
# hgdiff.py
import subprocess
import sys
file = sys.argv[1]
subprocess.call(["gvimdiff", "<(hg cat %s)" % file, file])
Когда вызывается подпроцесс, он просто передает <(hg cat file)
в gvimdiff
в качестве имени файла.
Итак, есть ли способ перенаправить команду, как это делает bash?
Для простоты просто скопируйте файл и перенаправьте его на diff:
diff <(cat file.txt) file.txt