在我们的公司,我们已经建立了一个数据集成工具,我们已经销售给几个客户。大多数客户都有不同的需求。我们使用基于继承的自制机制实现了这些特定于客户的扩展(因此每个安装都知道要加载哪些类,哪些不加载)。但是,所有这些特定于客户的代码仍然是与标准代码相同的代码库。
现在,这是不可能的,因为几个原因(代码库变得丑陋和庞大,冲突的要求,等等)
因此,我们决定将代码库分离为:一个用于标准产品,另一个用于特定于客户的代码库。
我现在正试图找到一个支持这种方法的版本控制系统。这是我的愿望清单:
由于我们的团队仍然很小(~4名程序员),开发人员自己也应该很容易处理。
顺便说一句,我们的软件是用春天与STS一起构建的(所以,Eclipse也会很棒)。
到目前为止,我研究过的所有VCS似乎都有构建一个软件的目标--而不是几个。我希望得到一些建议或最佳实践的方法。
发布于 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非常适合于保持这种变化)。
https://stackoverflow.com/questions/19295389
复制相似问题