2010-07-23 165 views
4

问题源控制系统

一个巨大的代码库跨越到几个 百万SLOC, 保持(支撑体/活性增强 等)通过的第二一大群/第三位 程序员(其中大部分人没有 真的很在乎)。几十年前,几个聪明 家伙已经把在地方 使用CVS下一个包装而这个系统是正在使用的当前一代的 开发人员(其中90%的人没有直接使用 CVS,或听说过的/ 使用另一个 命令行源控制系统)。

影响:CVS的

用法与多个团队 跨越多个模块工作时,不可避免地 =>CVS分支合流到 树干。这将是一个活动 在最宗教和 仪式上可能的方式实践。 [=> 蛮力;计划提前几周, 涉及十几个家伙2/4天。手动处理数百(有时是数千)源。 有趣的是,涉及的人并不是 修复程序的原始拥有者,他们只是通过检查 差异;真的,不是在开玩笑!] 这导致很多的 库/模块/功能和 太多的精力理智不一致 的花费在这些 合并纠正由于回归 缺陷。

而现在,这样的问题:

可以在一些积极的变化带来什么样的替代源代码控制系统 和 提高 程序员/经理在环境中生活和其他人 ?

既然大家都围在那里似乎已经醉KoolAid(同唱“这 - 是 - 如何-事情,是全熟,处处”),甚至没有给出一个关于寻找一个替代的思想,现在是时候有人这样做。但考虑到那些使用该系统的人,应牢记以下几个方面。

  1. 简单易用& &理解,甚至乔编码器应该能够使用它没有大惊小怪。 (无论如何,这将不会被需要,因为包装将隐藏真正的来自人们的底层的东西)
  2. A 巨大代码库(包含跨多种语言的源代码),与多个(约30)活动分支在任何给定的时间。
  3. 轻松合并到各个分支机构。(考虑到变化量相当大)
  4. 对系统的商业支持将是甜蜜的(如果有的话)。
  5. 发展发生在UNIX服务器(如果在HP-UX/Solaris上至少运行)
  6. 应该很好地扩展(数以千计的用户/十万源)
  7. 好的文档
  8. 简单/明晰的基于浏览器的界面来比较/查看更改/副本。
  9. 存储库中没有二进制文件,因此无需担心。
  10. 用于将当前存储库内容导入新系统的设置。

所以请建议。有没有希望& &出路? :) 很喜欢git的很肯定的东西会被直接拒绝(他们认为“混帐仅供聪明人”)

编辑:我也有水银和BitKeeper的想法,并将它提到乡亲环比上涨。希望最好! 谢谢! :)

+10

你是否考虑过退出并找到一份不会破坏你理智的工作?我知道这不是很有帮助,但是这是你描述你的情况时唯一想到的。如果你留在那里,祝你好运。我可以建议你将此提交给http://thedailywtf.com/? – Jean 2010-07-23 16:24:44

+0

:)感谢让!但是,直到那里,我至少应该尝试,对吧? – raghava 2010-07-23 16:56:10

回答

8

你可能听说过好的,快速和便宜的老话。这里同样适用。具有丰富的功能集会产生一定程度的复杂性。我认为,如果不选择涉及复杂性的工具,就不能满足这些要求。祝你好运,但如果是我,我会选择一个好工具,并投入一些时间来培训用户。

+2

完全同意。在某个时候,咬下子弹并在这个过程中投入一点点钱是有利可图的。看起来代码很重要,有足够的开发人员和庞大的代码库。 – RQDQ 2010-07-23 16:21:27

+0

谢谢Bill!如果我是决策者,我本人肯定会采取这种方式,因为尽管训练似乎是一项耗费精力/耗时的活动,但从长远来看,这将有助于实现。但是,我必须看到,上层管理人员“投入一段时间来培训用户”的想法会有多好(因为你只看到了一个较低的梯队员)。 – raghava 2010-07-23 18:50:14

3
敢肯定这样的东西混帐会被断然拒绝(他们认为“混帐仅供聪明人”)

如果是纯粹的“感知”的事 - 他们“感知”混帐太复杂,试着建议Mercurial或Bazaar--他们可能对他们不熟悉已经形成了一个不准确的偏见。

3

Mercurial将是我的建议。为了避免“复杂性”的感觉,请看 this site

这是“Joel Spolsky对Mercurial DVCS的友好介绍”,它为用户(以及颠覆恢复部分)提供了一个很好的教程,让他们一步一步地编辑,提交,合并等。

1

我会抛出转移到Subversion的建议。这并不是性感的分布式源代码控制,所有酷酷的孩子都在使用,但是,这就是我提出这个建议的原因,SVN应该是从CVS轻松迁移的。它在某些方面已经建立,使用良好并且在概念上类似于CVS。 (现在,如果你的开发人员远远不能这样做,它可能没有帮助。)

很多很多人都做过这种迁移。有utilities在那里将您的代码从CVS迁移到SVN(但不是没有一些痛苦)。

它应该能够满足您的大部分要求(尽管合并的可能性有多大是有争议的)。

底线是:您的挑战不是技术。这是通过。如果你的团队不想改变,它不会。可悲的是,任何解决方案都将注定失败。你必须说服他们首先需要改变。最好的办法是吸引他们的懒惰(我的意思是以积极的方式),并表明如果他们改变,“生活会更好”。

0

任何工具都需要培训。我想说,如果你确信自己会转向其他系统,那么花费一些时间来培训这些人是完全合理的,这样从长远来看,这将非常有帮助。 通过查看你的需求集我会说试试看svn或sos。拥有sos的优势在于您可以在问题上获得24 * 7的支持。他们可以处理大量数据。他们也有一个很酷的浏览器界面。