许多使用Visual Studio的程序员很难适应这样的事实:在其他源代码控制系统中,文件不需要在任何给定时间锁定/检出给一个开发人员.
合并的支持者说允许两个人在同一个文件上工作可以提高工作效率,因为它可以消除对同一源文件的排队.它还避免了需要编写代码的情况,但是对于刚刚离开两周假期的人来说,检查了源代码.
锁定拥护者说当多个人同时在同一个文件上工作时会引入很多风险.根据他们的说法,在使用合并模型时,团队成员之间的沟通和协调变得更加必要.此外,很多人似乎不信任自动合并.
使用一种方法而不是另一种方法的最有说服力的理由是什么?
kro*_*old 34
从锁定模型切换到合并模型后,我将进行以下观察:
恕我直言合并模型非常优越,因为它允许我在使用代码时自由.它可能不是使用1周的代码"变暗"的最佳模型,但是再次使用"锁定"模型这是一个同样大的问题.一个星期以来代码中没有人会变黑.
T.E*_*.D. 12
我非常害怕合并自己的想法,有关于在80年代尝试合并代码的nighmares的回忆.但是,我下载了Subversion和Git并与他们玩了一下,并对他们的承诺印象深刻.很遗憾,我是这里唯一的人.
我做过的一件事你可以尝试:跟踪自己.由于锁定模型更加悲观,如果您在该模型下工作,这很容易做到.每次与其他开发人员发生锁定冲突时,请与他们交谈.跟踪以下内容:
4是唯一可以证明锁定对你有帮助的情况,并涵盖了所有这些事件.在过去的3年里,我发现我一直在做的事情是,几乎每个问题都是1-3种.我想我发现了一次.但如果我把所有丢失的时间加起来都是1-3,那就太棒了.
合并是正确的方法,但是为了增加前面的答案,它应该尊重一些标准才能有效.
另外,请记住,还可以将两者结合使用:
在这种情况下,您应该确保存在"释放"机制以避免被第一个开发人员阻止.
我认为合并模型更优越,更灵活,用户可以并行工作,永不等待,解决冲突所花费的时间远远少于锁定模型所损失的时间.大多数情况下,对文件所做的更改不会发生冲突,并且可以自动合并.
这可能就是为什么它是大多数现代源控制系统中的默认模型.
但最终,关键因素始终是用户沟通.当用户沟通不畅时,肯定会发生冲突.
锁定文件可能无法很好地扩展到更大的团队。对于使用大量分支和合并的版本控制系统,让任何一个人对存储库进行这种控制可能根本不切实际(因此,无法扩展到更大的团队)。
例如,使用 Subversion,分支是指针副本,因此如果您正在试验某些内容但想要提交,您可以轻松创建 TRY 分支以避免损坏主干。
对于像 Git 这样的分布式版本控制系统,每次签出本质上都是一个分支。