git diff - 外部查看器 - 获取所有差异结果

Art*_*Art 4 git shell diff

配置外部差异时,每个文件显示结果,即查看当前运行差异查看器所需的下一个文件的差异.

有没有办法让git并行生成所有差异查看器进程?

如果我只是从外部diff脚本中生成进程,显然git会删除它用于比较的临时文件.

所以

#!/usr/bin/python
import subprocess
import sys
p = subprocess.Popen(('/usr/bin/meld', sys.argv[2], sys.argv[5]))
#p.wait()
Run Code Online (Sandbox Code Playgroud)

没用,显示'无法读取'/tmp/.diff_VlLwKF'

但是,如果我取消注释

#p.wait()
Run Code Online (Sandbox Code Playgroud)

一切正常,但同样,它是顺序产卵,而不是平行.

谢谢

Seb*_*rth 6

我在SO上问了一个类似的问题,希望在BeyondCompare的标签中打开diff文件.我想出了这个:

for name in $(git diff --name-only $1); do git difftool $1 $name & done
Run Code Online (Sandbox Code Playgroud)

这将获取已修改文件的列表,并在每个单独文件的后台任务中调用外部差异工具.

查看此处详细信息以及如何使其易于使用.对bash不熟悉我很想听到任何改进......

编辑1:添加了可选参数(例如'--staged')
编辑2:添加了git别名(参见链接).