一个hg repo可以在我的本地文件系统中的另一个hg repo中存活吗?
我正在为'sandbox'提取bitbucket wiki,我想知道这应该放在repos/sandbox/wiki
还是repos/sandbox-wiki
。
前者可以吗?
修改:请参阅Subrepository。
答案 0 :(得分:7)
简短的回答是肯定的,但我无法想象你为什么要这样做。
在你的例子中,我认为你应该选择:
repos/sandbox-wiki
[edit] Additionaly:
Yo Dowg, I herd you like repositories.
So we put a repo in your repo so you can version while you version
<强>: - )强>
答案 1 :(得分:5)
是和否。取决于你想做什么。你可以创建repo'sandbox / wiki',但是这个内部repos中的文件不会在外部'sandbox'仓库中提交(@Jason是对的)。如果你不想,没问题。
尝试在sandox中显式添加wiki repos中的文件,您将收到以下消息。如果您只是将路径添加到包含内部存储库的某个目录,则只会忽略这些文件。
来自sandox root directoy:
hg add wiki/myfile
abort: path 'wiki/myfile' is inside repo 'wiki'
答案 2 :(得分: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
答案 3 :(得分:-1)
您需要在沙箱中设置一个这可能会产生更多的用户混淆而不是它值得。.hgignore
文件以排除wiki,因为mercurial假定它负责所有后代。