4

我有一个包含许多组件的大型系统,我想将这些组件分布在几个不同的 mercurial 存储库中(因此在系统的某些部分上工作的人不必检查整个系统)。它需要在 UNIX 和 Windows 上运行。

在系统中,我有一个需要在许多地方共享的目录(保存常见的东西,如 CSS 文件和图像)。

我已经设置了它,以便每个组件都有一个共享 repo 的子repo,并且该 repo 也在更高级别上签出。我这样做是因为我希望程序员能够从主存储库中执行“hg pull”,而不是“hg push”(任何更改都会被“hg serve”从他们的工作中提取并在开始之前先检查回到主存储库)。

所以在顶层,程序员可以检查:

核心样式 ComponentSetA ComponentSetB 等

这些都指向http://machine/hg/RepoName(通过克隆)。

我在以下位置有子存储库:

ComponentSetA/web/style (with style = ../../Style in web/.hgsub) ComponentSetB/web/style 等等。

我的问题是,在“hg 克隆”上,我似乎无法让子存储库自动创建自己。我希望它们是透明的。如果任何程序员没有进行更改,他们不应该注意到他们在那里......

如果我必须先检查 Style 存储库,然后执行其中一个组件,那没关系,但我希望对顶级存储库有额外的间接级别,以允许程序员将他们的较低级别的更改推送到一个公共的回购。

有什么建议么?

4

1 回答 1

2

如果我错了,请纠正我,但听起来你.hgsub在子目录中有一个文件,web而不是在 repo 的根目录中。如果你想web/style成为一个子仓库,你可以.hgsub像这样将它添加到你的根目录:

web/style = ../../Style
于 2011-04-08T12:57:45.827 回答