10

我对将传统 SCM 产品(ClearCase、AccuRev、Perforce 等)与 Git 一起用于具有分布式团队的大型项目的价值(或缺乏价值)感兴趣。

在提高团队活动的可见性方面是否有显着的附加值?控制分支和合并?访问控制和安全?发布工程?其他因素?

还是单独使用 Git 更好?或者是否有与上述商业产品相当的开源 SCM?

谢谢。

4

3 回答 3

6

使用尽可能少的系统。如果你没有看到单独使用 git 以外的任何东西的优势,那么就单独使用 git。

大多数项目只使用一个 VCS(例如 git 或 Subversion),并且可以做他们需要做的所有事情(分支,..),所以除非你有一个你知道不寻常的要求,你可以很确定一个产品会做所有事情你需要。

于 2011-03-01T20:31:11.130 回答
2

将 Git 与 ClearCase 或 SVN 集成不是我目前正在寻找的东西,主要是因为 Git 存储库无法保留与传统集中式存储库相同类型的数据(二进制文件)或卷(文件的数量/大小)。
请参阅“什么是 Git 限制? ”。

我现在正尝试在企业 ClearCase-SVN 环境中引入 Git,作为独立的替代方案。

虽然速度、私人提交和合并功能非常受欢迎,但我被要求解决以下方面的实际问题:

  • 集中化:中央存储库仍然是强制性的,作为许多团队将其代码同步到的参考
  • 模块化:没有办法只创建一个 Vob(ClearCase)或一个 Subversion 存储库并开始将所有内容放入其中:每个 git 存储库都需要非常细粒度,以便在标记或分支时添加一致的值(这些操作涉及所有 Git 存储库,而不是所述存储库中的子目录)。
  • 身份验证:每个用户都在 LDAP 中被引用,我需要想出prereceive挂钩,以便使用正确的配置进行至少一次提交user.name(即 auser.name等于cn我们公司 LDAP 中的通用名称)。(有点像gitolite 脚本 ' contrib/update.email-check',但用于user.name,而不用于电子邮件)。
  • 正确访问gitolite在这里为那些中央存储库获得非常精确的 ACL 提供了巨大帮助。
    但是使用 ssh 私钥/公钥也意味着拥有带有密码短语的私钥(根据我们的安全团队的规定,这是强制性的),并且与 Hudson 或其他工具集成并非易事。

简而言之,我仍然觉得 Git 更好,但由于我负责实施它的安装/管理,我完全同意我之前在 SO 问题“我们最终可以在企业软件中迁移到 DVCS 吗?SVN 仍然是一个”中所做的分析必须有'发展? ”;)。

于 2011-03-01T20:55:09.870 回答
1

有价值。

  1. 使用廉价本地分支的灵活性和便利性来促进本地(机器)环境中的开发人员工作流程,使用集中式系统轻松控制基于角色的权限和大量文件的聚合。

  2. 开发人员基于任务的分支保留在分布式系统中,并保持集中式历史更清晰。

  3. 集中式系统可用于从分布式系统中卸载大型二进制资产。

有成本。

  1. 支持/培训混合环境。

  2. 需要在系统之间定位/维护一个转换层。

于 2011-03-02T00:22:18.957 回答