使用mercurial中的子存储库来“共享代码”

时间:2011-07-26 09:12:27

标签: mercurial subrepos

我有一个存储库,其中有三个子文件夹 A,B和核心文件夹。

我需要A和B中的核心文件夹的文件。因此,核心文件夹的每个文件都应该位于A和B中的另一个文件夹中,并且每次更新文件都应该提交到“核心”,反之亦然。
因此,我尝试将核心文件夹设置为子存储库,并将其添加到A和B.

因此,在文件夹B中,.hgsub www = ../core中有以下行 主存储库位于.hgsub core = core

我认为我做错了什么,但也许你有一个如何实现我想要的提示:)

(更新)
澄清:
存储库包含应用程序的不同“项目” A是Android,B是iOS。 “核心”包含HTML + JS文件,稍后在Android和iOS项目中用于构建具有phonegap的应用程序。

1 个答案:

答案 0 :(得分:8)

如果我理解你的话,你有这个:

repo
  |
  +-- core         <--+
  +-- A               |
      +-- core     ---+ \A\core and \B\core should be equal to \core
  +-- B               |
      +-- core     ---+

Mercurial中没有任何内容可以帮助您解决此问题。

可以做的是:

core-repo
  +-- (content)

repo
  +-- A
      +-- core        --- sub-repo pointing to core-repo
  +-- B
      +-- core        --- sub-repo pointing to core-repo

这将允许您对A内的子仓库进行更改,推送,然后拉入并更新到B内的子仓库,使它们保持同步。