8

一个 hg 存储库可以存在于我本地文件系统上的另一个 hg 存储库中吗? 我正在拉下“沙盒”的 bitbucket wiki,我想知道它是否应该放在or中。

一个 repo 在另一个 repo 中的屏幕截图

repos/sandbox/wikirepos/sandbox-wiki

前者可以吗?

编辑:见Subrepository

4

4 回答 4

7

简短的回答是肯定的,但我无法想象你为什么想要。

在您的示例中,我认为您应该使用:

repos/sandbox-wiki

[编辑] 另外:

Yo Dowg, I herd you like repositories.

So we put a repo in your repo so you can version while you version

:-)

于 2010-05-20T13:19:10.893 回答
5

是和不是。取决于你想做什么。您可以创建 repo 'sandbox/wiki' 但是这个内部 repos 中的文件不会提交到外部 'sandbox' repo 中(@Jason 是对的)。如果你不想,没问题。

尝试在 Sandox 中显式添加来自 wiki 存储库的文件,您将收到以下消息。如果您只是将路径添加到包含内部存储库的某个目录,则这些文件将被忽略。

从 Sandox 根目录:

   hg add wiki/myfile
   abort: path 'wiki/myfile' is inside repo 'wiki'
于 2010-05-20T13:54:10.580 回答
1

Mercurial 不允许嵌套存储库,但它们至少有一个原因:

假设您正在一个项目中工作:/MyProject。在这个文件夹中,您可以放置​​所有内容:代码、文档、测试等。

您想要备份您的工作,因为它非常重要,因此您为 /MyProject 创建了一个存储库。然后,加班时,您使用捆绑软件保存 /MyProject 的演变并将它们备份到 USB 闪存中,以便您可以恢复所有内容,以防硬盘驱动器损坏。

请记住 /MyProject 包含所有内容。在所有这些东西中,有主要代码和一些辅助项目。您还想跟踪 /MyProject/AuxiliaryProject 中的辅助项目的进度,因此您使用 Mercurial 跟踪它的演变。

此外,您希望主代码有一个单独的存储库:/MyProject/Main

在这种情况下,您需要嵌套的存储库:一个能够使用包和子存储库备份所有内容以管理每个子项目的大型存储库。

我认为 Mercurial 在初始化存储库时应该给用户几个选项。例如: - 忽略嵌套存储库 - 包括嵌套存储库但忽略 .Hg 文件夹(即表现得好像没有嵌套存储库但不要忽略嵌套存储库中包含的信息)。- 包括嵌套存储库,还包括 .Hg 文件夹(对于备份目的有意义)

--------- 编辑:子存储库是一项正在进行的功能: https ://www.mercurial-scm.org/wiki/subrepos

此外,还有一个名为“forest”的扩展,将来可能会过时: https ://www.mercurial-scm.org/ForestExtension

于 2010-06-28T12:07:11.440 回答
-1

您需要.hgignore在沙箱中设置一个文件以排除 wiki,因为 mercurial 假定它对所有后代负责。这可能会产生比其价值更多的用户困惑。

于 2010-05-20T13:21:54.390 回答