我已按照http://www.semanticmerge.com/sm-guides/main.shtml#HowtoconfigurewithMercurial上的说明进行操作,但它们是为 kdiff3 配置的,我想使用 p4merge 进行文本合并。我当前的 mercurial.ini 看起来像这样:
[merge-tools]
semantic.executable = C:\Users\JP\AppData\Local\PlasticSCM4\semanticmerge\semanticmergetool.exe
semantic.premerge=False
semantic.binary=False
semantic.args=-b=$base -s=$local -d=$other -r=$output -l=csharp -edt="p4merge.exe ""#sourcefile"" ""#destinationfile""" -emt="p4merge.exe -le 'win' -dl ""#basefile"" ""#sourcefile"" ""#destinationfile"" ""#output"""
semantic.gui=True
semantic.checkconflicts=True
使用我当前的配置,当以 .cs 结尾的文件发生冲突时 SemanticMerge 按预期运行,但是当我在 SemanticMerge 中使用 merge 命令运行文本合并时,我收到一条错误警报,指出:
Error starting P4Merge
Errors: 'c:\directory\1d37-some-guid.tmp' is (or points to) an invalid file.
是不兼容还是我上面的“semantic.args”部分配置不正确?
更新 当我单击特定更改的合并按钮时出现错误。请参阅下面的屏幕截图。答案是正确的,因为我应该使用“运行文本合并”按钮运行文本合并。