首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >寻找支持标准开发和客户特定开发的版本控制系统。

寻找支持标准开发和客户特定开发的版本控制系统。
EN

Stack Overflow用户
提问于 2013-10-10 12:09:55
回答 1查看 91关注 0票数 0

在我们的公司,我们已经建立了一个数据集成工具,我们已经销售给几个客户。大多数客户都有不同的需求。我们使用基于继承的自制机制实现了这些特定于客户的扩展(因此每个安装都知道要加载哪些类,哪些不加载)。但是,所有这些特定于客户的代码仍然是与标准代码相同的代码库

现在,这是不可能的,因为几个原因(代码库变得丑陋和庞大,冲突的要求,等等)

因此,我们决定将代码库分离为:一个用于标准产品,另一个用于特定于客户的代码库。

我现在正试图找到一个支持这种方法的版本控制系统。这是我的愿望清单:

  • 支持多种不同版本的“标准”代码库( )
    • 1.0版本
    • 1.1释放
    • 2.0 beta/开发

  • 支持多个“客户”代码库
  • 通过克隆标准代码库创建客户代码库的能力
  • 更改客户代码库中的标准代码的能力
  • 使用新的标准版本更新客户代码基的能力(并以某种方式标记来自客户代码库中更改的标准代码的冲突)

由于我们的团队仍然很小(~4名程序员),开发人员自己也应该很容易处理。

顺便说一句,我们的软件是用春天STS一起构建的(所以,Eclipse也会很棒)。

到目前为止,我研究过的所有VCS似乎都有构建一个软件的目标--而不是几个。我希望得到一些建议或最佳实践的方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-10 12:32:58

简单地说

只需获取git,就可以进行拉请求处理,并利用一些GUI支持这个工作流。

发布与自定义开发有很大不同吗?

要澄清的是,您所面临的情况是什么:“标准”开发在不同版本中,它们可能独立于维护,您可能需要从新版本中获得一些修复,以便合并到旧版本中,您需要一种解决修补程序的方法。

所有这些问题都通过分布式版本控制系统如git、hg或其他系统得到了很好的解决。我从hg开始,但后来发现,git被更频繁地使用,并且在标准安装中提供了所有需要的东西(某些hg特性不是这样的)。

关于自定义开发--事实上,它们与标准版本在概念上并没有太大的不同--您只需要对程序进行另一次修改就可以以唯一的名称标识,这将最终表示,这些都是自定义的东西。

分支或拉请求过程?

现在如何处理不同版本和自定义发展的不同的“游泳线”?

分支工作流模型

显而易见的答案是“分支”。有许多关于各种分支模型的教程,它们将解决您的问题。

然而,分支也不是琐碎的,你可能会发现,在什么风格是最好的长期争议。

主题repos和拉请求工作流

幸运的是,还有更简单的解决方案- Pieter关于“分支被认为有害”的文章http://hintjens.com/blog:24提供了更简单的模型,使用局部存储库和拉请求过程。这是管理GitHub和BitBucket上的许多项目,我发现这确实是风险最小的最有效的解决方案。

最后建议

对于拉请求工作过程,有一些支持相关通信的图形用户界面是很方便的,除了GitHub和BitBucket之外,还有市场上的解决方案。一些开源解决方案)。

为长期运行做好准备--从Pieter的链接文章开始,您的运行时间可能会更短一些,下一步可能是在BitBucket上玩一个项目,然后设计“最终”系统(这个系统无论如何都会随着时间的推移而发展,但是git repos非常适合于保持这种变化)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19295389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档