2012-04-02 136 views
1

我们有几个产品线围绕一个通用核心构建,目前使用外部方式将其维护在SVN中。移到mercurial,移动到hg sub-repositories是很自然的。在多个项目之间共享核心代码库

事情是核心是相当大的(可能> GB,由SVN回购判断),一个典型的开发者有时希望同时在几个产品上工作,比如3-4。

我是否正确地认为它通常意味着开发人员将核心复制到每个开发人员3-4次,并具有其整个历史记录?另外,如果开发人员希望在另一个产品中执行一些简单的操作,那么即使它已经在客户端已经可用(几次...),它也意味着核心必须先被拉取。

回答

0

为了真正分享subrepository(和而不是其工作副本),您可以使用share extension。但是,这使得克隆过程有点违反直觉:

hg clone -U remote_core core 
hg clone -U remote_projectA projectA 
cd projectA 
hg share ../core core 
hg update 
cd .. 
hg clone -U remote_projectB projectB 
cd projectB 
hg share ../core core 
hg update 

依此类推。但是我警告你,这种设置会让你头痛不止。在工作中,我们有一个类似的设置,但是对于每个使用它的项目,共享子库都有一个分支(不是命名分支,而是一个克隆分支,一个专用主​​存储库)。这样,项目可以独立修改共享代码,同时仍然可以轻松合并它们。

相关问题