Mercurial上的多个并行版本

时间:2012-08-08 20:03:24

标签: mercurial branch

假设我正在为有共同需求的不同客户开发软件。 我用一条开发线开发系统,这没关系。每个客户端都在服务器上安装了软件,并通过从bitbucket存储库中提取来进行更新。

稍后,其中一个客户端仅根据自己的需求请求自定义模块。其他客户也可能有其他自定义需求。

我的问题是:我如何管理定制,拉动(更新)主要开发的新版本,以及仅当它们存在时的习惯?

1 个答案:

答案 0 :(得分:0)

一个选项:使自定义部分成为代码库,而不是通过Mercurial进行管理。这样做有很多很好的理由,包括没有你分叉和维护单独版本代码的危险,或者确实维护了存储库树的单独分支。这两个都是相当枯燥的任务,可能会导致问题,所以如果我是你,我会赞成。这取决于您的语言,但我的目标是在MainCodeBase中保留一些模块,用户可以通过某种方式配置使用的模块。

第二个选项:子存储库。为Customer1创建一个包含该客户模块的仓库,并拥有MainCodeBase的子仓库。 Customer1只需递归拉取其存储库即可获取最新的模块和最新的MainCodeBase。这里的问题是,当您希望多个客户使用相同的模块时,它会变得丑陋。