使用Subversion与Visual Studio中的Visual Source Safe一样

时间:2010-03-13 19:50:44

标签: visual-studio svn visual-sourcesafe ankhsvn

在工作中我刚开始使用Subversion和AnkhSVN而不是Visual Source Safe。我设法将其整合得足够好,但看起来并不相同。 使用VSS会发生以下情况:

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

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

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

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

3 个答案:

答案 0 :(得分:8)

在源安全上使用subversion是因为拥有独占锁,许多人可以在同一个文件上工作。

如果您开始使用SVN上的独占锁定,那么您将失去SVN的许多好处。

这个想法是你在合并代码时修复冲突。

请参阅this SO问题和答案,以便对问题进行一些讨论(Revision control locking: Is the jury still out?)。

答案 1 :(得分:6)

Agent SVN是Subversion的MS-SCCI插件(就像VSS一样),所以它就像VSS一样与Visual Studio集成。

它还有一个签出时锁定选项,并且它上面的功能确实感觉像VSS一样。

答案 2 :(得分:2)

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

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

Svnbook解释the differences between a lock-modify-unlock and copy-modify-merge,并且还描述了svn:needs-lock行为