2012-09-24 24 views
2

我们多个程序员必须同时在一个项目中工作。有时我们必须在一个文件中工作。SVN一个项目:多个程序员,锁定或分支哪一个更好?

哪个更好

  • 文件锁定
  • 分支

或者说,如何用更好的方式使用这两者?

+2

您应该阅读SVNBook“版本控制基础|版本控制模型”,网址为http://svnbook.red-bean.com/en/1.7/svn.basic.version-control-basics.html#svn.basic.vsn - 型号 – bahrep

+0

@bahrep良好的参考 –

回答

3

非锁定结帐(您称之为“分支”)总是更好。锁定结帐不会导致签入冲突,但会导致签出冲突。只要人们100%可靠(并且速度快),结账冲突可以得到缓解。否则,你会让人们坐在他们的手中来结账,而不是并行工作。

例如,我开始处理一个文件,所以我锁定它。然后我去吃午饭。当我离开时,没有其他人能够使用这个文件。我从午餐回来,我的电子邮箱中充满了“嘿,请解锁XXX”,我的手机有消息等。这些“压力”最终导致人们在版本控制之外进行工作,然后将它们“合并”成修订版控制系统(这很容易遗漏项目失败)。

使用非锁定结帐功能,您和我都可以在无需协调的情况下结帐,而且我们两个(再次不协调)都会修改一些相同的文件。我首先检查,这将与存储库顺利合并(我再次没有和你协调)。您尝试检入,但其中三个文件基于“当前”文件副本“之前”制作的副本。你现在任命一个选择。删除文件并根据“当前”副本进行更改,或下载应用的更改以从“旧”副本创建“当前”副本并将这些更改合并到您的提交中。你只能等你自己。

使用非锁定结帐功能,一个人不会影响团队的其他成员,无论他们试图执行何种操作。如果他们选择不经常合并或早期合并,他们可能会为自己承担更多的工作;但是,他们不会为其他人带来更多的工作。

+1

真的,分支不是锁币的另一面。但是,既然你已经这样对待,我也必须在我的回答中这样做。你的意思是更多的“锁定结帐”vs“非锁定结账” –

+0

更好的答案。我的意思是“锁定结账”。 –

+0

“非锁定结帐”的场景是什么? –