使用p4merge作为git的diff工具



我使用windows 7。我想使用p4merge作为Git的diff/merge工具。我按照这篇文章和这篇来设置和配置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的内部实现。

我尝试了平滑的Git + P4merge,但它不适合我,我也尝试按照外部合并和Diff工具中描述的那样做,但我不明白。

注意:

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

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

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

如果p4merge在这个列表中,那么你只需要将p4merge.exe所在的路径添加到%PATH%(在Windows上,我建议对此进行快速环境编辑器)。

完成后,您只需要在.gitconfig

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

,没有别的了。所以删除其他的东西,比如difftool.path和所有的东西。

那就用git difftoolgit mergetool吧。

注意:我有一个存储库,即使我发出git difftoolgit mergetool命令,P4Merge也不会启动。我不确定那个回购有什么问题。然而,我尝试用git init在我的驱动器上创建一个空的repo,添加一个文件,提交它,然后修改它,然后我尝试了difftool,它工作了。因此,如果上述描述对你不起作用,那么问题可能出在其他地方。

晚做总比不做好:)

mergetool.p4merge。路径应为mergetool.p4merge.cmd

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

如果你是Mac电脑,不要忘记在应用程序前添加/,如:

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

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

git mergetool

DeviantDev对此有一个很好的答案。

将此添加到我的.gitconfig中为我工作…

[diff]
    tool = p4merge
[difftool]
    prompt = false
[difftool "p4merge"]
    path = C:\Program Files\Perforce\p4merge.exe
[merge]
    tool = p4merge
[mergetool "p4merge"]
    path = C:\Program Files\Perforce\p4merge.exe
[mergetool]
    keepBackup = false

相关内容

  • 没有找到相关文章