5

是否可以在现有的 mercurial 存储库中创建一个 mercurial 存储库?

这个想法是将存储库的子目录作为不同的存储库处理,你是怎么做的?

我不是在谈论 subrepos (至少,如果我理解 subrepos 的目的......),但如果这就是 subrepos 的存在方式,我弄错了,我会尝试做对:)

谢谢~阿基

编辑:为了更清楚,我想知道会发生什么,将存储库放在另一个存储库中的做法和影响,而无需指定模块/子存储库。换句话说:如果我这样做会发生什么:

hg init globalRepo
hg init globalRepo/subRepo

并按原样使用这两个存储库?

4

3 回答 3

15

它运作良好。早在 Mercurial 1.3 中添加 subrepo 支持之前,很多人将他们的整个主目录保存在 mercurial repo 中,以跟踪他们的.bashrc文件等。然后在他们的主目录中,他们会有许多其他 repos 的克隆。

每当您调用 mercurial(不带-R选项)时,它都会在当前目录中查找一个.hg目录,然后继续向上查找目录,直到找到一个。因此,如果您在一个 repo 中的 repo 中,您的命令将始终作用于您所在的最里面的 repo。

需要注意的是,您要确保不要将文件添加到外部存储库中,最终进入内部存储库。然后,您将有两个存储库更新相同的文件。

于 2010-06-13T02:15:18.343 回答
4

正如您在这个SO question中看到的那样,您可以进行这种嵌套hg init,即使它通常保留用于定义subRepo(这不是您所追求的)。

通常它应该作为两个独立的存储库工作,但我建议在其中添加一条hgignore规则以完全globalRepo忽略subRepo内容。

于 2010-06-12T17:16:08.110 回答
0

这里有一些关于嵌套存储库的文档。

于 2010-06-12T13:17:53.767 回答