OS项目的mercurial和企业项目的svn?

nev*_*ame 5 svn version-control mercurial

如果我错了,请更正我,但不是为OS项目分发SCM,而集中式SCM更适合企业/私人项目?

因为例如.mercurial任何人都可以获得具有完整历史记录功能的存储库的精确副本,而在集中式的情况下,您只能获得最新的工作副本.

我更关注私人项目,所以我想知道集中式SCM是否更好或不重要?

Von*_*onC 10

您可以在大公司中使用DVCS(如mercurial).

与VCS相比,DVCS的限制基本上是:

  • size(你不能无限期地将所有内容存储在DVCS中,这意味着你应该将开发数据重新考虑为模块,而不是在大型项目中仍然可以找到的单片文件集)
  • 正确的访问管理:它在DVCS中并不像在VCS中那样细粒度,主要是因为许多外部各方可以使用不同的用户身份验证方案为项目做出贡献.该所有权是棘手的管理.
  • 工作流程:DVCS工作流程更复杂,即使它可以模拟CVCS之一(一个中央仓库作为所有其他人的参考)

也就是说,DVCS允许一种新的方式来发布(拉/拉)数据,这可以帮助团队之间的"预交付"(当团队想要分享开发时,即使仍在进行中并且尚未正式承诺到中央存储库):你成为一个被动的产生和积极的消费者.


Tomislav Nakic-Alfirevic在评论中提到:

你能说明你的DVC与集中式DVC的第二点吗?

正确的访问管理很棘手,特别是如果大公司:

  • 必须与外部企业共享其部分存储库以进行共享的外包开发
  • 允许将一些存储库克隆到个人计算机上(当在不同站点的移动环境中工作时,开发人员不总是访问企业网络)

在这些情况下,这意味着:

  • 用户身份验证并不总是很容易协调(同一个用户可以根据他/她克隆存储库的位置具有不同的身份).可以设置基于SSH的身份验证(gitosis,gitauth).
  • 与文件关联的元数据是有限的,例如通过Git标签
    (例如,在克隆repo的给定计算机上可能不存在文件组)
    (不透明地支持来自其他工具的元数据)
    (文件名中的特殊字符)可能有问题)
  • 访问权限通常仅限于所有仓库,而不是原生每个分支或每个文件(如服务器管理gitolite GIT中必须配置为,而不是一个CVS总是有一个服务器,意义将更加enclined到提出一个更细粒度的ACL)

例如,Git 有点过于简单,无法直接回答大公司的担忧:

git的新手(意思是,当我开始时我建议像这样增强;))经常谈论添加这个功能或那个功能,而没有意识到git真的非常简单.
它有文件,目录,提交,标签,就是这样.
它集中解决方案的优势在于缺少代理标识符,例如分支路径,服务器分配的序列号等.

是的,可能有更多的关系和元数据来代表很多东西.
每个文件的历史记录和合并,目录重命名,樱桃采摘,还原.
但这些都增加了基本模型的复杂性,基本模型已经证明自己能够处理这些事情 - 需要注意.
但是,回报 - 简单 - 非常值得这些警告.


归档时间:

查看次数:

402 次

最近记录:

16 年 前