使用 p4merge 作为 git diff 工具

Using p4merge as git diff tool

我用windows 7。我想使用 p4merge 作为 Git diff/merge 工具。我按照 this article and this one 设置和配置 p4merge:

git config --global merge.tool p4merge
git config --global mergetool.p4merge.path "C:/Program Files/Perforce/p4merge.exe"
git config --global diff.tool p4merge
git config --global difftool.p4merge.path "C:/Program Files/Perforce/p4merge.exe"

这些行来自git config:

merge.tool=p4merge
mergetool.p4merge.path=C:/Program Files/Perforce/p4merge.exe
diff.tool=p4merge
difftool.p4merge.path=C:/Program Files/Perforce/p4merge.exe
mergetool.keeptemporaries=false
mergetool.prompt=false

现在 git mergetool 命令工作正常。但是当我在 git bash 中使用 git difftool 命令时,我期望 p4merge 但我在 git bash 中看到了 diff 的内部实现。

我试过 Smooth Git + P4merge but it does not work for me also I tried to do as described in External Merge and Diff Tools 但我不明白。

注:

当冲突类型为 removed file conflict 时,git difftool 命令打开 p4merge

迟到总比不到好:)

mergetool.p4merge.path 应该是 mergetool.p4merge.cmd

将 mergetool 和 difftool 行的路径更改为 cmd。

不确定是否有帮助,但 Git 的最新版本支持 P4Merge(我通过 MSYS2 在 Windows 上使用 git version 2.17.0.)。

您可以通过 运行 git difftool --tool-help 判断是否属于这种情况。它将列出 Git 可以使用的可用工具(因为他们已经在您的 %PATH% 中找到了它们)以及它 可以 使用的工具(如果安装了它们).

如果 p4merge 在此列表中,那么您只需将 p4merge.exe 所在的路径添加到您的 %PATH%(在 Windows 上,我建议 Rapid Environment Editor为此)。

完成后,您只需要在 .gitconfig

中添加以下配置
[diff]
    tool = p4merge
[merge]
    tool = p4merge

仅此而已。所以删除其他东西,比如 difftool.path 等等。

那就尽情地使用git difftoolgit mergetool吧。

注意:我有一个存储库,即使我在其中发出 git difftoolgit mergetool 命令,P4Merge 也不会启动。我不确定那个回购协议中的问题是什么。但是我尝试使用 git init 在我的驱动器上的某个地方创建一个空的 repo,添加一个文件,提交它,然后修改它, 然后 我试过 difftool 并且它有效.因此,如果上述描述对您不起作用,则问题可能出在其他地方。希望这会有所帮助。

如果您使用 Mac,请不要忘记在应用程序之前添加 /,如:

[mergetool "p4merge"]
    path = /Applications/p4merge.app/Contents/MacOS/p4merge

这就是为什么当我在下面 运行 时 P4Merge 不会为我打开的原因:

git mergetool