很多时候,当将许多变更集合并到另一个分支时,我会遇到合并冲突,而我根本没想到。在某些情况下的行为是可疑的,我想阅读SVN的日志,告诉我为什么他决定看到冲突。我很怀疑目标分支上的文件是否被其他人修改过。
答案 0 :(得分:1)
当您遇到冲突时,您可以在分支机构上使用svn log somefile
来确定您所做的更改。您可以在要合并的其他分支上使用svn log svn://url/repo/branch/somefile
来查看该文件的更改内容。
根据此信息,您可以推断出SVN标记冲突的原因。冲突可能很小(树冲突和mergeinfo冲突通常很容易解决)。如果您同时更改了文本文件的同一行,则SVN不仅会标记冲突,还会修改文件,以便您可以查看原始版本,更改及其更改。
您可以使用合并工具(Beyond Compare,meld,TortoiseSVN merge)通过查看三个版本并从每个版本中选择要保留的行来解决冲突。
通过所有这些信息,您应该能够找出冲突被标记的原因。
您怀疑其他文件未被修改,因此此调查将为您提供确定性。如果事实证明没有人提交文件,那么我怀疑问题将出在mergeinfo上。如果您从其他源合并,而另一个分支已合并其他源,那么您将在mergeinfo属性中遇到冲突。该文件的元数据告诉SVN已经合并了哪些转速。
如果您至少没有解决冲突一次并提交更新的属性,那么下次合并时,您只会再次看到同样的问题。