1

我在一家公司工作,在美国和欧洲都有开发团队。每个设施目前都使用 Perforce,我们正计划联合构建新系统。作为一个分布式团队,我很希望我们转向 git 或 Mercurial,但我的同事们很谨慎。他们喜欢 Perforce,看不到迁移到 DVCS 的任何好处。

必须承认我正在努力想出令人信服的充分理由。两个设施之间的快速线路意味着我们可以使用中央 Perforce 存储库,或者为每个设施克隆一个。

出现的一个担忧是不会有一个主存储库:开发人员永远不会知道他刚刚签出的代码是否是最新的——假设其他人正在更新同一个文件?

是的,我是一个 git/Mercurial 菜鸟。任何人都可以用难以反驳的理由帮助我吗?

谢谢!

4

3 回答 3

4

如果你不知道任何切换的理由,你为什么要切换?

虽然人们可以为您提供他们喜欢 perforce 缺乏的 git 功能 - “本地存储库意味着更快的历史!”,“我不能没有 git bisect”,“perforce 没有存储,因此很难签入离散单元!”.. . 没有人能告诉你 git 比 perforce 对你的公司有什么好处。

所以问问自己这个问题:“我的部门需要 perforce 缺乏的什么?” 和“如果没有 perforce 强制执行的一些限制,我们可以做得更好吗?”。一旦你回答了这些问题,看看 git 是否可以提供帮助。在提出真正的问题结束时,“难以反驳的理由”将掌握在您手中,并适用于您的实际同事。

于 2012-07-06T15:23:08.327 回答
2

您的问题似乎与 git/mercurial 无关,而是集中式与分布式 VCS:

  1. 分布式 VCS - 专业人士
    • 源的多个副本;如果服务器出现故障,则可以从多个工作站获得代码
    • 本地副本意味着更新往往更小,网络密集度更低
  2. 分布式 VCS - 缺点
    • 同步更改;如果您的签入率很高并且多个员工在同一模块上工作,您需要有一个非常清晰的推送/拉取/合并协议
  3. 集中式 VCS - 专业人士
    • 代码的一个地方 - 您知道哪个存储库是或应该是规范的
  4. 集中式 VCS - 缺点
    • 代码的一个地方-服务器不可用意味着开发人员无法长时间分支/版本而没有问题
于 2012-07-06T16:00:14.503 回答
0

要回答这个问题,“谁能想到从集中式 VCS 转移到分布式 VCS 的任何场景是明智的?” 我可以:

  • 您的开发团队非常松散耦合。他们有独立的时间表、管理、标准等。他们是如此独立,以至于 CVCS 对他们来说只是官僚主义的繁文缛节。
  • 他们所做的开发不受审计或合规标准的约束。没有关于谁在什么时候做了什么的中央记录对您的公司来说不是问题。
于 2012-07-06T18:38:24.920 回答