当两个人在SVN下编辑同一个文件时,我应该在AnkhSVN中做什么*

MGO*_*wen 3 svn asp.net ankhsvn

我们的代码在SVN中.我们使用Visual Studio和AnkhSVN插件进行开发.

在SVN之前使用VSS我习惯了锁定文件的想法,以便其他用户知道不要编辑它(实际上我认为这是源控制的主要点,以防止这些冲突中丢失的数据).

我被告知这种情况很少发生,而且由于另一个开发人员锁定你而无法工作的情况更频繁(这听起来像是一个原则,可能只适用于开发项目的某个子集).但无论如何,SVN更好,我们正在使用它.

因此,当我编辑文件,然后去检查它,并找出其他用户也编辑过它时,我实际上做了什么?

当然有一种更好的方法比保存我的文件副本,还原更改,从服务器更新它,然后将我的更改合并到winmerge?当我右键单击该文件并单击"合并"时,我被告知我应该先更新,这显然不是我需要的.

.

更新:部分答案
好的,听起来我刚刚点击更新,然后SVN自动合并非冲突的更改,并且应该让AnkhSVN知道任何冲突的更改以允许某种解决方案.有谁知道这在AnkhSVN中是如何起作用的 - 我实际上做了什么?

(如果不是我会自己尝试,接受当前的最佳答案,并为后代更新这个问题的后半部分).

ang*_*son 6

实际上,这正是你所需要的.

编辑:澄清,您需要做的就是点击该更新.您不需要单独复制,还原等.从存储库更新会将这些更改与您自己的更改合并.

当您执行更新时,对存储库中也已更改的文件进行本地更改,SVN会将存储库中的文件与本地文件合并,同时保留两组更改.

实际上,它应该自动完成Winmerge的操作.

如果更改存在冲突(通常是它们出现在同一行中),则会出现合并冲突,必须进行解决.不知道AnkhSvn,我不知道在这种情况下它会做什么,但它应该有一些修复东西的方法.通常它涉及查看3个文件(您的本地文件,存储库文件以及成功合并的结果),您从文件的两个更改版本中选择要保留的每个部分.

在更新本地副本,合并并修复任何冲突后,您可以照常提交.

  • 根据我的经验,有些文件容易出现合并冲突,比如sql脚本或语言本地化字符串文件.在这些文件中,我们设置了svn:needs-lock subversion属性.这将迫使开发人员在编辑之前独占锁定文件,并且没有人能够同时编辑它.从Ankh svn开始,您应该可以右键单击该文件的编辑子版本属性. (2认同)