【问题标题】:Can one Mercurial repository live inside another Mercurial repository?一个 Mercurial 存储库可以存在于另一个 Mercurial 存储库中吗?
【发布时间】:2011-02-21 20:58:04
【问题描述】:

一个 hg 存储库可以存在于我本地文件系统上的另一个 hg 存储库中吗?



我正在拉下“沙盒”的 bitbucket wiki,我想知道它是否应该放在 repos/sandbox/wikirepos/sandbox-wiki 中。

前者可以吗?

编辑:见Subrepository

【问题讨论】:

    标签: mercurial bitbucket mercurial-subrepos


    【解决方案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

    【讨论】:

      【解决方案2】:

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

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

      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
      

      :-)

      【讨论】:

        【解决方案3】:

        您需要在沙盒中设置一个.hgignore 文件以排除 wiki,因为 mercurial 假定它对所有后代负责。 这可能会导致用户感到困惑而不值得。

        【讨论】:

        • ?!我的印象是 mercurial 会自动忽略其根层次结构下的其他 mercurial 目录。 (实际上已经这样做了)
        • 正确你是:它确实忽略了下属。但是考虑到 mercurial 的默认简洁输出,我仍然认为你会让自己感到困惑。
        【解决方案4】:

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

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

        来自 Sandox 根目录:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-01-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-12-17
          相关资源
          最近更新 更多