2010-05-20 121 views

回答

5

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

尝试在sandox中显式添加wiki repos中的文件,然后您会看到下面的消息。如果您只是将路径添加到包含内部回购的某个目录,则文件将被忽略。

从sandox根directoy:

hg add wiki/myfile 
    abort: path 'wiki/myfile' is inside repo 'wiki' 
7

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

在你的榜样,我觉得你应该一起去:

repos/sandbox-wiki 

[编辑] Additionaly:

Yo Dowg, I herd you like repositories. 

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

:-)

-1

你需要设置在沙盒中添加 .hgignore文件以排除wiki,因为mercurial假定它负责所有后代。 这可能会产生更多的用户困惑。

+3

?!我的印象是,mercurial会自动忽略其根目录下的其他mercurial目录。 (实际上是这样做的) – 2010-05-20 13:25:09

+1

正确的你是:它确实忽略了下属。不过,考虑到mercurial的默认简洁输出,我仍然认为你会为自己陷入混乱。 – msw 2010-05-20 15:44:10

1

水银不允许嵌套库,但至少有一个理由来让他们:

试想一下,你在一个项目工作:/ MyProject的。在这个文件夹中,你放置了一切:代码,文档,测试等。

你想备份你的工作,因为它非常重要,所以你为/ MyProject创建一个存储库。然后,你可以使用捆绑包来保存/ MyProject的进化,并将它们备份到USB闪存中,以便在硬盘损坏的情况下恢复一切。

请记住/ MyProject包含所有内容。其中包括主要代码和一些辅助项目。您还希望跟踪/ MyProject/AuxiliaryProject中的辅助项目的进度,因此您使用Mercurial来跟踪其发展。

此外,要对主代码独立的库:/ MyProject的/主营

在这种情况下,你要嵌套仓库:一个大一个能够备份使用束和孩子仓库一切用于管理每个子项目。

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

---------编辑: Subrepositories是一个特点,就是正在进行的工作: https://www.mercurial-scm.org/wiki/subrepos

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