我使用Eclipse 3.4.2和Subversion(在服务器上使用svn 1.4.6),我在理解特定选项(深度,忽略祖先等)以及如何合并来自主干的更改时遇到问题进入分支,然后再回来。
此外,当存在冲突的更改时,Subversion似乎中断 - 在冲突文件的比较编辑器中,我的本地文件包含SVN文本(例如<<<<<<<<< .working)这显然不会出现在实际的工作副本文件中。如果我回到我的资源视图,我会看到一大堆SVN临时文件。这是某个地方的错误,还是我做错了什么?
答案 0 :(得分:3)
你描述的“破坏”是颠覆工作的标准方式 - 当合并导致线路冲突时,SVN会保留冲突的两面并将它们放在源文件中供您查看。您必须编辑冲突的文件,检查冲突的版本与存储库的版本并进行编辑,以便只保留一个集合(删除<<<< line,>>>> line,=====行以及您不想拥有的所有冲突代码行。然后右键单击源文件并选择“标记为已合并”。接下来,您可以提交合并的文件。这称为手动合并,必须在发生冲突时完成。
一堆临时文件是来自任何一方的原始源文件,它们应该可以帮助您解决冲突 - 您应该有一个以“.mine”结尾的文件,这是源文件的原始干净版本和文件以“.rXXXXX”结尾(其中XXXX是一个subversion版本号),它是源文件的存储库原始干净版本。当您“标记为合并”时,这些文件将消失。
Eclipse有一个很好的图形工具,您可以使用比较样式编辑器来解决冲突,但它有一些怪癖,需要练习和理解该工具才能有效地使用它。如果您想尝试,可以在文件的RMB菜单 - > Team-> Edit Conflicts下找到。
答案 1 :(得分:0)
我想您可能会发现<<<<< .working
这些行出现在您的实际工作副本文件中。这就是Subversion如何让您知道由于合并冲突需要手动编辑文本的哪些部分。
您可以在优秀的Resolve Conflicts书籍的Version Control with Subversion部分阅读有关合并工作流程的更多信息。