Version control 寻找支持标准开发和客户特定开发的版本控制系统
在我们公司,我们已经建立了一个数据集成工具,并已销售给多个客户。大多数客户都有不同的要求。我们通过使用基于继承的自制机制实现了这些特定于客户的扩展(因此每个安装都知道哪些类需要加载,哪些类不需要加载)。但所有这些特定于客户的代码仍然与标准代码在同一代码库中 现在,这已经不可能了,原因有很多(代码库变得丑陋和庞大,需求冲突等等) 出于这个原因,我们决定分离代码库:一个用于标准产品,几个特定于客户的代码库 我现在正试图找到一个支持这种方法的版本控制系统。这是我的愿望清单:Version control 寻找支持标准开发和客户特定开发的版本控制系统,version-control,Version Control,在我们公司,我们已经建立了一个数据集成工具,并已销售给多个客户。大多数客户都有不同的要求。我们通过使用基于继承的自制机制实现了这些特定于客户的扩展(因此每个安装都知道哪些类需要加载,哪些类不需要加载)。但所有这些特定于客户的代码仍然与标准代码在同一代码库中 现在,这已经不可能了,原因有很多(代码库变得丑陋和庞大,需求冲突等等) 出于这个原因,我们决定分离代码库:一个用于标准产品,几个特定于客户的代码库 我现在正试图找到一个支持这种方法的版本控制系统。这是我的愿望清单: 对不同版本的多个“标准”
- 对不同版本的多个“标准”代码库的支持
- 1.0版本
- 1.1发布
- 2.0测试版/开发版
- 支持多个“客户”代码库
- 通过克隆标准代码库创建客户代码库的能力
- 能够更改客户代码库中的标准代码
- 能够使用新的标准版本更新客户代码库(并以某种方式标记来自客户代码库中更改的标准代码的冲突)
为长期运行做好准备-从Pieter Hintjens的链接文章开始,可能会缩短您的运行时间,下一步可能是在BitBucket上玩一个项目,然后设计“最终”系统(该系统无论如何会随着时间的推移而发展,但git回购非常适合跟上变化).你不是在寻找分支机构吗?分支机构是我在过去20年中使用过的每一个vc系统提供的一种设施?我也问自己——我是否也有升级“普通老”分支机构的可能性?(创建分支机构A,在那里添加一些额外的东西,然后将所有东西从主分支机构运送到分支机构A,但保留这些额外的东西?)您告诉我们的任何事情都不会让我认为,使用您当前的风投进行分支并不是解决您当前问题的好(足够)方法。当然,您必须先做一些思考和工作,以使您的方法适合您的工具(和/或您的工具适合您的方法),并确保每个人都理解新的需求。如果你还没有风投,那么(a)淘气,淘气你,和(b)得到颠覆。就我个人而言,我不会用驳船码头去碰分布式风投。@HighPerformanceMark:现在我知道什么是驳船码头了。有趣的你,大概是SVN的长期超级用户,鼓励其他人使用风投,否则他们就是顽皮的-我同意。我鼓励您尝试一些分布式VCS。有很多优点(很容易克隆、合并,当你无法访问服务器时,有完整的历史记录),你可以欣赏这些优点,但这需要用手触摸。似乎,作为SVN或CVS的长期超级用户是采用分布式VCS的某种障碍。感谢您的介绍A和链接。我们目前正在使用mercurial,我将对“命名分支”进行更深入的研究。我们现在用不同的分支提出了以下解决方案:default(标准开发分支)、revision1.0(用于修复错误的标准开发分支)、revision1.1(用于修复错误的标准开发分支)、customerA(来自“revision1.0”的克隆)有一些变化)。现在,我们正在研究如何限制这些分支之间进行更改的方式,但我将就此发布一个不同的问题。+1用于创建foll