2010-03-13 117 views
8

在工作中,我刚开始使用带有AnkhSVN而不是Visual Source Safe的Subversion。我设法很好地整合了它,但看起来并不一样。 使用VSS会发生以下情况:在Visual Studio中使用Subversion与Visual Source Safe相同

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

我明白Subversion背后的哲学是不同的,但是有没有什么办法可以用Subversion复制上面描述的这种行为?

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

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

+2

你为什么想要? Subversion并不是为这种过程而设计的。如果您更喜欢VSS的工作方式,为什么不使用VSS? – Thomas 2010-03-13 19:54:19

+0

嗯,我不能。 Subversion被选中,我没有发言权。 – Para 2010-03-14 16:27:39

+0

@Thomas:我不再相信我的源代码到VSS。我看到了太多破损的数据库,并且在分支之间合并更改实际上是不可能的。SVN采用了一种方式来传递需要锁定的不可合并文件,而AnkhSVN通过一种方式来实现这一点,以便与VSS将会非常紧密地匹配。我并没有试图进入SVN vs VSS的讨论:) – 2010-03-15 22:59:13

回答

7

颠覆源安全的一点是,你有排他锁,许多人可以在同一个文件上工作。

如果你开始在文件上使用排它锁,你将失去SVN的很多好处。

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

请参阅this对所提问题进行一些讨论(Revision control locking: Is the jury still out?)。

+1

+1的真相。 – 2010-03-13 19:58:12

2

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

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

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

6

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

它也有一个锁定退房选项,并与它的功能确实感觉很像VSS。

相关问题