配置外部差异时,每个文件显示结果,即查看当前运行差异查看器所需关闭的下一个文件的差异。
有没有办法让git并行生成所有差异查看器进程?
如果我只是从外部diff脚本中生成进程,显然git会删除它用于比较的临时文件。
所以
#!/usr/bin/python
import subprocess
import sys
p = subprocess.Popen(('/usr/bin/meld', sys.argv[2], sys.argv[5]))
#p.wait()
不起作用,meld显示'无法读取'/tmp/.diff_VlLwKF'
但是,如果我取消注释
#p.wait()
一切正常,但同样,它是连续产卵,而不是平行。
由于
答案 0 :(得分:6)
我在SO上问了一个类似的问题,希望在BeyondCompare的标签页中打开diff文件。我想出了这个:
for name in $(git diff --name-only $1); do git difftool $1 $name & done
这将获取已修改文件的列表,并在每个单独文件的后台任务中调用外部差异工具。
查看details here以及如何使其易于使用。作为bash的新手,我很想听听任何改进......
编辑1:添加了可选参数(例如'--staged')
编辑2:添加了git别名(see link)。
答案 1 :(得分:0)
除了为每个文件调用difftool之外,你可以让git为你做这件事,从(git 1.7.11,2012年6月)开始:
它现在可以扩展目录(即在打开difftool之前显示所有要比较的文件)
请参阅“git difftool
to give directory compare?”
所以也许你现在可以使用一个调用,目录为差异。