8

在工作中,我刚开始使用带有 AnkhSVN 而不是 Visual Source Safe 的 Subversion。我设法将它整合得很好,但它似乎不一样。使用 VSS 会发生以下情况:

用户通过右键单击并选择“签出”或通过编辑来签出文件。如果另一个用户试图修改同一个文件,他会得到一个错误。没有 2 个用户可以同时编辑同一个文件。没有花哨的合并。没有冲突,也没有冲突解决方案。

我理解 Subversion 背后的哲学是不同的,但有什么办法可以用 Subversion 复制上述行为?

AnkhSVN 中有一个名为“更改时自动锁定文件...”的选项,但即使我在编辑文件时激活此选项,它也永远不会自动锁定。即使此选项有效,其他用户在提交文件之前也不会看到锁定。当他们尝试像在 Visual Source Safe 中那样编辑它时,他们不会收到错误。

所以基本上:可以使用 Subversion 和 AnkhSVN 复制 Visual Source Safe 的行为吗?

4

3 回答 3

8

使用颠覆而不是源代码安全的要点是您没有排他锁,并且许多人可以在同一个文件上工作。

如果您开始将 SVN 与文件的排他锁一起使用,那么您将失去很多 SVN 的好处。

这个想法是您在代码合并期间修复冲突。

有关这些问题的一些讨论,请参阅SO 问题和答案 ( Revision control locking: Is the jury still out?)。

于 2010-03-13T19:56:04.773 回答
6

Agent SVN是一个用于 Subversion的MS-SCCI 插件(就像 VSS),因此它像 VSS 一样与 Visual Studio 集成。

它还有一个Lock on check out选项,并且具有该功能确实感觉很像 VSS。

于 2011-12-29T13:39:02.480 回答
2

您需要svn:needs-lock在要显式锁定的文件上设置颠覆属性。它只推荐用于不容易合并的文件,比如(大多数)二进制文件,而不是文本/代码文件。通常文本/代码文件会自动合并,当它们不冲突时通常很容易解决。

svn:needs-lock当您在设置属性时尝试编辑文件时,AnkhSVN 会要求您锁定文件(与 VSS 中的签出相同) 。如果启用“自动锁定文件”功能,锁定对话框将被抑制,您将锁定文件而不显示对话框。

svnbook 解释了 lock-modify-unlock 和 copy-modify-merge 之间的区别,还描述了svn:needs-lock行为

于 2010-03-13T19:57:26.797 回答