4
  1. GIT p4merge - 同一文件中有2个或更多冲突

我已经将 p4merge 与 GIT 集成在一起,我曾经遇到过这种情况。

我有一个合并冲突的文件。文件说 foo.c 在 3 行不同的代码中有合并冲突(第一行有冲突,中间的一些行有冲突)。

当我解决冲突的第一行(不是其他冲突行)并保存(使用 p4merge 上的保存按钮)时,我猜它会将 foo.c 添加到索引中,当我提交时,git 允许我提交而不给我一个错误或警告以解决同一文件中的其他冲突行。

这是 GIT 或 p4merge 的问题吗?我认为 GIT 应该警告或错误指出该文件还有其他冲突的行。但它只是提交。


  1. 在 GIT 中合并特定文件

我的另一个问题是是否有命令可以让开发人员合并某个文件?当我运行 git mergetool 时,它会一个一个地打开所有合并冲突,而不是像 clearcase 这样的方法,我可以说合并这个选定的文件?

4

1 回答 1

4
  1. My guess: when you save file in p4merge, it happilly return with code 0, file is changed, and git assumes that conflicts were resolved. There is a config parameter mergetool.<tool>.trustExitCode (mergetool.p4merge.trustExitCode in your case), which can be set to false, so git will always ask you if merge was successfull after running git mergetool (which can be quite annoying). You also might be able to write a wrapper for p4merge which will check presence of conflict markers after running p4mege, or pre-commit hook, which rejects commits containing files containing such markers, though I've never done something like that.

  2. Yes, you can run git mergetool <file> to resolve specified file. Learn more here.

于 2010-11-01T10:26:56.617 回答