如果这是一个非常明显的问题,我提前道歉 - 我是SVN的新手。我尽力寻找答案,但我找不到任何具体的解决方案。
由于程序顶部的注释块,我在合并分支时经常发生冲突。
我们在每个程序的顶部使用注释块来解释程序的内容,并跟踪更改。每次我们更改程序时,我们都会注意到我们的新变化。假设现场节目的评论栏结束如下:
* <developer 1> <date> <comment> *
* ******** END COMMENTS ******** *
两个新的开发人员开始他们自己的分支并在开发人员1下面添加他们自己的评论。当开发人员2将他们的代码放到现场时,开发人员3将其合并回他的分支。我可以看出这是一个明显的冲突,因为他们都添加了不同的新行。
住:
* <developer 1> <date> <comment> *
* <developer 2> <date> <comment> *
* ******** END COMMENTS ******** *
开发者3的分支:
* <developer 1> <date> <comment> *
* <developer 3> <date> <comment> *
* ******** END COMMENTS ******** *
所以开发者3自己解决了冲突。当他然后尝试将他的更改合并到Live中时,问题出现了。
住:
* <developer 1> <date> <comment> *
* <developer 2> <date> <comment> *
* ******** END COMMENTS ******** *
开发者3的分支:
* <developer 1> <date> <comment> *
* <developer 2> <date> <comment> *
* <developer 3> <date> <comment> *
* ******** END COMMENTS ******** *
当然,最后的情况不是冲突吗?开发人员3的代码只是有一个额外的行,所以这必须是一个简单的合并。但这反复被标记为冲突,结果如下:
* <developer 1> <date> <comment> *
<<<<<<< .working
* <developer 2> <date> <comment> *
* ******** END COMMENTS ******** *
=======
* <developer 2> <date> <comment> *
* <developer 3> <date> <comment> *
* ******** END COMMENTS ******** *
>>>>>>> .merge-right
这实际上是一个正确的冲突,还是SVN犯了错误? 我能做些什么来防止这种情况一再发生?
谢谢!
答案 0 :(得分:2)
此行为是设计使然。
请考虑以设计的方式使用SVN。让开发人员使用特定于他们的登录进行提交,并坚持提交消息。将其嵌入到程序源中没有什么意义。