我们有几个围绕公共核心构建的产品线,目前使用外部工具在SVN中维护它们。转到mercurial,使用hg sub-repositories是很自然的。
问题是核心相当大(根据SVN repo判断,可能>GB ),一个典型的开发人员有时希望同时开发几个产品,比如3-4个。
我是否正确地理解了,这通常意味着开发人员会将核心复制到每个开发人员3-4次,以及其整个历史记录?此外,如果开发人员希望在另一个产品中执行一些简单的操作,这将意味着必须首先提取核心,即使它在客户端已经可用(几次...)?
发布于 2012-04-03 05:10:40
为了真正共享子存储库(而不是它的工作副本),您可以使用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诸若此类。但我警告你,这种设置会让你头痛不止一次。在工作中,我们有类似的设置,但是共享子存储库对于使用它的每个项目都有一个分支(不是命名分支,而是克隆分支,专用的主存储库)。这样,项目可以独立地修改共享代码,同时仍然可以轻松地在它们之间进行合并。
https://stackoverflow.com/questions/9983102
复制相似问题