【问题标题】:git-diffall and git difftool --dir-diff not working with Araxis Mergegit-diffall 和 git difftool --dir-diff 不适用于 Araxis Merge
【发布时间】:2014-01-21 02:43:24
【问题描述】:

当我运行git-diffall (https://github.com/thenigan/git-diffall) 或git difftool --dir-diff(均引用自@Tim Henigan's SO post)时,我收到以下错误:

我的配置是:

  • GitHub for Windows 1.2.6.4 f054d9f(位于 msysgit 1.8.4 之上)
  • Araxis Merge 2013 专业版 2013.4296
  • GitHub for Windows 附带的 Posh Git PowerShell 提示符

非常奇怪的是,这个完全相同的设置在我的另一台机器上也能运行。

git config --global diff.toolgit config --local diff.tool 都按预期返回“araxis”。

实际的本地 repo 配置包含此部分:

[diff]
    tool = araxis
[difftool "araxis"]
    path = C:/Program Files/Araxis/Araxis Merge/compare.exe
    prompt = false
[merge]
    tool = araxis
[mergetool "araxis"]
    path = C:/Program Files/Araxis/Araxis Merge/compare.exe

引用自Araxis' documentation

我不确定参数是如何实际传递给 Araxis 的,因此不知道如何进一步解决此问题。

我需要执行哪些步骤来更正我的配置,以便我可以使用 Araxis Merge 进行目录比较?

【问题讨论】:

标签: git powershell merge github-for-windows araxis-merge


【解决方案1】:

在放下这个问题并在一段时间后重新考虑之后,我发现了问题的原因。虽然我上面的研究是准确的,但它并没有揭示整个故事。经过一番挖掘,我发现了原因。

我在git config --global -lgit config --local -l 的输出之间进行了比较,并意识到我的 difftools 有一些冲突(和错误)的配置。我不确定它们是如何不同步的,但它们完全不同是致命的。

我的全局配置如下所示:

[merge]
    tool = Araxis
[mergetool "kdiff3"]
    path = c:/Program Files (x86)/KDiff3/kdiff3.exe
[diff]
    guitool = araxis
    tool = araxis
[difftool "kdiff3"]
    path = c:/Program Files (x86)/KDiff3/kdiff3.exe
[difftool]
    prompt = false
[difftool "Araxis"]
    path = C:/Program Files/Araxis/Araxis Merge/Compare.exe
    cmd = \"c:/Program Files/Araxis/Araxis Merge/Compare.exe\" -wait -merge -3 -a1 \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"
[mergetool "Araxis"]
    path = C:/Program Files/Araxis/Araxis Merge/Compare.exe
    cmd = \"c:/Program Files/Araxis/Araxis Merge/Compare.exe\" -wait -merge -3 -a1 \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"
[difftool "araxis"]
    path = C:/Program Files/Araxis/Araxis Merge/Compare.exe
    cmd = \"c:/Program Files/Araxis/Araxis Merge/Compare.exe\" -wait -merge -3 -a1 \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"

我将其替换为本地配置的内容(发布在 OP 中),并从本地配置中删除了我的工具配置。

这样做之后,我的问题就完全消失了。

我使用git config --global -egit config --local -e 进行了实际编辑,这样就不会错误地编辑正确的文件。

【讨论】:

  • 很好的详细反馈。 +1
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-29
  • 1970-01-01
相关资源
最近更新 更多