mercurial用于操作系统项目,svn用于企业项目?
如果我错了,请纠正我,但分布式的SCM不适合操作系统项目,而集中式的SCM更适合公司/私人项目吗 因为使用mercurial,任何人都可以获得具有完整历史记录功能的存储库的精确副本,而使用集中式存储库,则只能获得最新的工作副本 我更专注于私人项目,所以我想知道集中化的SCM是更好还是没关系?你可以 与VCS相比,DVCS的限制基本上是:mercurial用于操作系统项目,svn用于企业项目?,svn,mercurial,version-control,Svn,Mercurial,Version Control,如果我错了,请纠正我,但分布式的SCM不适合操作系统项目,而集中式的SCM更适合公司/私人项目吗 因为使用mercurial,任何人都可以获得具有完整历史记录功能的存储库的精确副本,而使用集中式存储库,则只能获得最新的工作副本 我更专注于私人项目,所以我想知道集中化的SCM是更好还是没关系?你可以 与VCS相比,DVCS的限制基本上是: (您不能无限期地将所有内容存储在DVCS中,这意味着您应该重新考虑仍然可以在大型项目中找到的开发数据) 权限访问管理:DVCS中的权限管理不像VCS中的权限管
- (您不能无限期地将所有内容存储在DVCS中,这意味着您应该重新考虑仍然可以在大型项目中找到的开发数据)
- 权限访问管理:DVCS中的权限管理不像VCS中的权限管理那样细粒度,这主要是因为许多外部方可以通过不同的用户身份验证方案为项目做出贡献。这个问题更难处理
- 工作流:即使可以,DVCS工作流也会更加复杂(一个中央回购作为所有其他回购的参考)
在评论中询问:
你能举例说明你的第二点吗?比较DVC和集中式DVC 正确的访问管理很难实现,尤其是在大公司:
- 必须与外部企业共享其部分存储库,以进行共享的外包开发
- 允许在个人计算机上克隆其某些存储库(当在不同站点的移动环境中工作时,开发人员并不总是能够访问企业网络)
- 用户身份验证并不总是容易协调的(同一用户可以具有不同的身份,这取决于他/她克隆存储库的位置)。可以设置基于SSH的身份验证(gitosis,)
- 通过
(例如,复制回购协议的给定计算机上可能不存在文件组)
(元数据来自)
() - 访问权限通常限制在所有存储库中,而不是按分支或文件进行本机管理(必须为此配置像for Git这样的服务器,而CVS总是有一个服务器,这意味着将更加密以提出更细粒度的ACL)
它有文件、目录、提交、标记,仅此而已。
与集中式解决方案相比,它的强大之处在于缺少代理标识符,例如 分支路径、服务器分配的序列号等 是的,可以有更多的关系和元数据来表示很多东西。
每个文件的历史记录和合并、目录重命名、挑选、还原。
但这些都给基本模型增加了复杂性,它已经证明自己有能力处理这些问题,并提出了警告。
但回报——简单——非常值得这些警告
不,绝对不是。这种认为DVCSE不适合该企业的说法是完全错误的,这是FUD的一个常见论点,来自那些出于任何原因不想放弃SVN的人 实际上,在企业环境中,DVCSE也能为您带来许多好处:
- 能够在不妨碍他人的情况下频繁登记
- 脱机工作
- 高性能
- 有效的分支/合并
- 拉式访问模式
要深入了解版本控制系统之间的差异,一篇非常好的文章是。你错了-你可以了解这两种情况下的历史-这是任何版本控制系统的主要原因。你能说明你将DVC与集中式DVC进行比较的第二点吗?@Tomislav:我更新了我的答案以反映这一点DVCS.DVCS的一些用户管理难题使每个开发人员都能更好地控制存储库。这通常与公司环境的要求不符。还有规模问题——大多数公司回购都是巨额的。虽然DVCS有很多好处,但我认为我们需要一个新的DVCS,它能从每一个DVCS中吸取最好的部分。你读过我的评论吗?正如我所说,DVCS使您能够建立一个守门人结构,其中一个人可以完全控制最终在中央存储库中的内容,而不会限制开发人员的生产力。这给了你更多的控制比以往任何时候都实际可能与SVN。也wrt。大小