SVN一个项目:多个程序员,锁定还是分支哪个更好?

SVN一个项目:多个程序员,锁定还是分支哪个更好?,svn,Svn,我们需要多个程序员同时在一个项目中工作。有时我们必须在一个文件中工作 哪一个更好 文件锁定 分支 或者,如何更好地使用这两种方法?非锁定签出(您称之为“分支”)总是更好。锁定签出不会导致签入冲突,但会以签出冲突为代价。如果人员100%可靠(且快速),签出冲突可以缓解。否则,你会让人们坐下来结账,而不是并行工作 例如,我开始处理一个文件,所以我锁定了它。然后我去吃午饭。我不在的时候,没有其他人可以处理这个文件。我吃过午饭回来,我的邮箱里满是“嘿,请解锁XXX”,我的手机上有消息等。这些“压力”

我们需要多个程序员同时在一个项目中工作。有时我们必须在一个文件中工作

哪一个更好

  • 文件锁定
  • 分支
或者,如何更好地使用这两种方法?

非锁定签出(您称之为“分支”)总是更好。锁定签出不会导致签入冲突,但会以签出冲突为代价。如果人员100%可靠(且快速),签出冲突可以缓解。否则,你会让人们坐下来结账,而不是并行工作

例如,我开始处理一个文件,所以我锁定了它。然后我去吃午饭。我不在的时候,没有其他人可以处理这个文件。我吃过午饭回来,我的邮箱里满是“嘿,请解锁XXX”,我的手机上有消息等。这些“压力”最终导致人们在修订控制之外工作,然后将他们“合并”到修订控制系统中(容易出现缺项故障)


使用非锁定签出,您和我都签出,没有协调,我们都(再次不协调)修改了一些相同的文件。我首先签入,这将顺利地与存储库合并(同样,我没有与您协调)。您尝试签入,但有三个文件基于“当前”文件副本之前的副本。你现在的任务是选择。删除您的文件并根据“当前”副本进行更改,或者从“旧”副本下载用于创建“当前”副本的更改,并将这些更改合并到您的提交中。你只是在等你自己


使用非锁定签出,一个人不会影响团队其他成员尝试执行的任何项目。如果他们选择不经常合并或提前合并,他们可能会为自己承担更多的工作;但是,它们不会为其他人带来更多的工作。

您应该阅读SVNBook“版本控制基础知识|版本控制模型”,实际上,分支并不是锁定硬币的反面。但是,既然你这样对待它,我在回答中也必须这样做。你的意思是更多的“锁定结账”与“非锁定结账”更好的答案。我的意思是“锁定签出”。什么是“非锁定签出”场景?你和我都签出,没有协调,我们都(同样没有协调)修改了一些相同的文件。我首先签入,这将顺利地与存储库合并(同样,我没有与您协调)。您尝试签入,但有三个文件基于“当前”文件副本之前的副本。你现在的任务是选择。删除您的文件并根据“当前”副本进行更改,或者从“旧”副本下载用于创建“当前”副本的更改,并将这些更改合并到您的提交中。你只需要自己等待。另一种情况是我签出并锁定文件。您想做一些工作,因此尝试签出,但无法签出,因为您需要的三个文件已锁定。你整天坐在办公桌前,甚至可能打断我要文件,我们都浪费了很多时间协调,而且我们都不能同时工作。锁定成本很高,以工时计算。更多的人在锁定存储库上工作最终意味着更多的人互相等待(什么也不做)。或者他们在存储库之外进行欺骗和开发,这违背了存储库的目的。