3

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

在 SVN 之前使用过 VSS,我已经习惯了锁定文件的想法,这样其他用户就知道在你编辑的时候不要编辑它(实际上我认为这是源代码控制的要点,以防止由于这些冲突而丢失数据)。

有人告诉我,这种情况很少发生,而且由于另一个开发人员将您拒之门外而导致您无法工作的情况更为常见(这听起来像是一个可能仅适用于开发项目的某个子集的原则)。但无论如何,SVN 更好,我们正在使用它。

所以当我编辑一个文件,去检查它,发现其他用户也编辑了它,我实际上该怎么做

肯定有比保存我的文件副本、恢复更改、从服务器更新它、然后用 winmerge 合并我的更改更好的方法吗?当我右键单击文件并单击“合并”时,我被告知我应该先更新,所以这显然不是我需要的。

.

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

(如果不是,我会自己尝试,接受当前的最佳答案并在后半部分更新此问题以供后代使用)。

4

2 回答 2

6

实际上,这正是您所需要的。

编辑:澄清,你需要做的就是点击那个更新。您不需要制作单独的副本、还原等。从存储库更新会将这些更改与您自己的合并。

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

实际上,它应该自动执行您对 Winmerge 执行的操作。

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

在您更新本地副本、合并并修复任何冲突后,您可以像往常一样提交。

于 2010-08-06T06:38:01.067 回答
0

这不是您问题的直接答案,但除了 AnkhSVN 或任何其他 Subversion 客户端(如 TortoiseSVN)之外,我建议使用SVN-Monitor 。

有了它,您可以查看您的存储库,并会收到存储库更改的通知。因此,您可以查看其他开发人员在存储库中所做的事情,并可能查看您的提交是否会与其他签入冲突,或者您是否可以更新本地副本而不会产生任何影响/冲突

于 2010-08-06T06:45:45.880 回答