假设我正在为具有共同需求的不同客户开发软件。我只用一行开发就开发了这个系统,这是可以的。每个客户端都将软件安装在服务器上,并通过从bitbucket存储库中提取来进行更新。
后来,其中一个客户只为他自己的需要而要求定制模块。其他客户端也可能有其他自定义需求。
我的问题是:我如何管理定制,拉(更新)开发主线的新版本,以及只有在存在的情况下的海关?
发布于 2012-08-09 17:20:51
一种选择是:使定制成为代码库的一部分,而不是通过Mercurial进行管理。这样做有很多很好的理由,包括不会有分支和维护单独版本代码的危险,甚至不会维护存储库树的单独分支。这两个都是非常枯燥的任务,可能会导致问题,所以如果我是你的话,我会更喜欢这样做。这取决于您的语言,但我的目标是在MainCodeBase中保留大量模块,以便用户配置所使用的模块。
第二种选择:子存储库。为包含该客户模块并具有MainCodeBase子存储库的Customer1创建一个repo。Customer1只需要递归地拉取他们的存储库,以获得最新的模块和最新的MainCodeBase。这里的问题是,当您希望多个客户使用同一模块时,它开始变得丑陋。
https://stackoverflow.com/questions/11872287
复制相似问题