如果我错了,请更正我,但不是为OS项目分发SCM,而集中式SCM更适合公司/私人项目?
因为例如。 mercurial任何人都可以获得具有完整历史记录功能的存储库的精确副本,而在集中式的情况下,您只能获得最新的工作副本。
我更关注私人项目,所以我想知道集中式SCM是否更好或不重要?
答案 0 :(得分:10)
你可以use a DVCS (like mercurial) in large corporation。
与VCS相比,DVCS的限制基本上是:
那就是DVCS allows for a new way to publish(拉/拉)数据,这可以帮助团队之间的“预交付”(当团队想要分享开发时,即使仍在进行中并且尚未正式承诺到中央存储库):你变成了passive produced and an active consumer。
Tomislav Nakic-Alfirevic在评论中提出:
您能否说明您将DVC与集中式DVC进行比较的第二点?
正确的访问管理很棘手,特别是如果大公司:
在这些情况下,这意味着:
Git,例如is a bit too simple直接回答大公司的关注:
git的新手(意思是,当我开始时我建议使用这样的增强功能;))经常谈论添加此功能或该功能,而没有意识到git真的非常简单。
它有文件,目录,提交,标签和就是它 它集中解决方案的优势在于代理标识符的缺乏,例如a 分支路径,服务器分配的序列号等。是的,可能会有更多的关系和元数据来代表很多东西 每个文件的历史记录和合并,目录重命名,樱桃采摘,还原 但这些都增加了基本模型的复杂性,基本模型已经证明自己有能力处理这些事情 - 需要注意 但是,回报 - 简单 - 非常值得注意。
答案 1 :(得分:2)
不,绝对不是。 DVCSes不适合企业的这一建议是有针对性的错误,是一种普遍的FUD论证,无论出于何种原因,他们不希望放弃SVN。
实际上,在企业设置中,DVCS也会带来很多好处:
关于最后一个,您可以给经验丰富的开发人员直接推送访问主存储库,而对于新成员或初级成员,他们的导师会从他们那里获取并在推送之前查看他们的更改。
参与上述答案中的讨论;通过这种方式,DVCSes可以为您的存储库提供更多控制权,而对于SVN,通常唯一真正可行的模型是让所有贡献者提交对至少部分代码的访问权。
对于包含代码的部分,您可能对权限的细粒度控制较少,但是您可以为不同的组(例如文档团队)提供他们自己的主存储库克隆,并在审核后定期将其合并。或者将文档放在完全不同的存储库中。
通常,您需要取消学习使用集中式VCS学习的实践,回到用例以及您想要做的事情,然后考虑DVCS如何赋予它权力。
要了解版本控制系统之间差异的一篇非常好的文章是Making Sense of Revision-Control Systems。