问题:
跨越数百万 SLoC 的庞大代码库,由一大群二流/三流程序员(其中大多数并不真正关心)维护(支持/积极增强等)。几十年前,很少有聪明人会在下面安装一个使用 CVS 的包装器,而这一代开发人员正在使用这个系统(其中 90% 的人没有直接使用过 CVS,或者听说过/使用过另一个命令行源代码控制系统) .
效果:
使用 CVS 和跨多个模块工作的多个团队,不可避免地 => CVS 分支合并到主干。这将是一项以最虔诚和最仪式化的方式进行的活动。[=> 蛮力; 提前几周计划,涉及十几个人,为期 2/4 天。手动处理数百个(有时数千个)源。 有趣的是,所涉及的人并不是修复程序的原始所有者,他们只是通过检查差异来进行;真的,我不是在开玩笑!] 这导致库/模块/功能的健全性存在很多不一致,并且花费了太多精力来纠正由于这些合并过程中的回归而导致的缺陷。
现在,问题是:
什么替代的源代码控制系统可以带来一些积极的变化并改善程序员/经理和环境中其他所有人的生活?
由于周围的每个人似乎都喝了 KoolAid(并唱“This-is-how-things-are-done-everywhere”),甚至没有考虑寻找替代品,现在是时候有人这样做了。但是考虑到将使用该系统的人的类型,需要牢记以下几个方面。
- 简单易用 && 理解,即使是 Joe Coder 也应该可以毫不费力地使用它。(无论如何这都不是必需的,因为包装器会对人们隐藏真正的引擎盖下的东西)
- 一个巨大的代码库(由多种语言的源代码组成),在任何给定时间都有多个(大约 30 个)活动分支。
- 轻松合并到各个分支。(考虑到变化量非常大)
- 如果可以的话,对该系统的商业支持将是甜蜜的。
- 开发发生在 UNIX 服务器上(至少应该在 HP-UX/Solaris 上运行)
- 应该可以很好地扩展(成千上万的用户/数十万个来源)
- 好的文档
- 简单/清晰的基于浏览器的界面来比较/查看更改/副本。
- 存储库中没有二进制文件,因此不必理会它们。
- 将当前存储库内容导入新系统的规定。
所以,请建议。有希望&&出路吗?:)我很确定像 git 这样的东西会被彻底拒绝(他们相信“git 只适合聪明的人”)
编辑:我也想到了 Mercurial 和 BitKeeper,并且已经向链上的人们提到了它。期待最好的!谢谢!:)