一次为多个文件配置vsdiffmerge

时间:2014-10-27 21:02:01

标签: git visual-studio-2012 git-diff

我正在使用git 1.9.4 for(http://git-scm.com/download/win)。

$ git difftool branchA branchB 为diff中的所有文件一次打开vsdiffmerge个文件。

$ git difftool --no-prompt branchA branchB尝试一次性打开所有文件(我想要发生的事情),但vsdiffmerge无法正常处理此任何文件。

  • vsdiffmerge的多个空实例将打开
  • 已经打开的实例将使用diff列表中的下一个文件替换其打开的选项卡

如何配置我的difftool所以行为是vsdiffmerge的一个实例,所有差异都有多个标签?

gitconfig:

[diff "astextplain"]
    textconv = astextplain
[rebase]
    autosquash = true

[diff]
    tool = vsdiffmerge
[difftool]
    prompt = true
[difftool "vsdiffmerge"]
    cmd = \"C:\\Program Files (x86)\\Microsoft Visual Studio 11.0\\Common7\\IDE\\vsdiffmerge.exe\" \"$LOCAL\" \"$REMOTE\" //t
    keepbackup = false
    trustexistcode = true
[merge]
    tool = vsdiffmerge
[mergetool]
    prompt = true
[mergetool "vsdiffmerge"]
    cmd = \"C:\\Program Files (x86)\\Microsoft Visual Studio 11.0\\Common7\\IDE\\vsdiffmerge.exe\" \"$REMOTE\" \"$LOCAL\" \"$BASE\" \"$MERGED\" //m
    keepbackup = false
    trustexistcode = true

1 个答案:

答案 0 :(得分:0)

答案是,最后删除/t(或//t,因为是转义)。

参数/t打开一个临时选项卡。这是选项卡,已被替换。如果没有此参数,Visual Studio将打开一个永久选项卡,并将其添加到已经打开的其他选项卡中。

另请参见此处:
https://roadtoalm.com/2013/10/22/use-visual-studio-as-your-diff-and-merging-tool-for-local-files/

PS:即使我最后删除了/t,对我来说,差异仍然在一个临时选项卡中打开。这样做的原因(至少就我而言)是Visual Studio或Git忽略了工具vsdiffmerge中的所有设置。重命名该工具后,一切正常。

因此,我建议将该工具重命名为vsdiff之类,删除/t,然后重试。

别忘了像git difftool -t vsdiff --no-prompt branchA branchB这样称呼它,以明确使用名为vsdiff的工具或将vsdiff设置为默认工具。