【问题标题】:Error "Repository is unrelated" when pushing repository with sub-repository to bitbucket将带有子存储库的存储库推送到 bitbucket 时出现错误“存储库不相关”
【发布时间】:2017-06-01 23:04:13
【问题描述】:

有一个存储库(GameFramework),我想在另一个存储库中用作子存储库。

我创建了一个新的主存储库,然后将 GameFramework 克隆到该存储库中,并使 GameFramework 成为子存储库。但是当我尝试将主存储库推送到 bitbucket 时出现错误:repository is unrelatedrepository is unrelated (in subrepo [path])

这很奇怪,但是当我清除 bitbucket 存储库然后再次推送时,它会起作用!

我拍了视频https://youtu.be/WI86_3I2ZH0

为什么会这样?

【问题讨论】:

    标签: mercurial bitbucket


    【解决方案1】:

    mercurial 认为两个存储库不相关,如果它们的来源不同,则它们是独立创建的。

    如果不使用 --force 选项,mercurial 不允许推送到不相关的存储库。

    在您的情况下,您(或其他人)可能在每个项目中分别独立地为子项目创建了一个存储库 - 并且没有引用与子存储库相同的存储库。

    解决这个问题有点棘手。可能最简单的方法是更改​​为其中一个子存储库。从另一个子存储库中提取并根据需要进行合并。也可以反过来做。

    【讨论】:

    • 如果第二个仓库是从第一个克隆的,那么这些仓库是相关的还是不相关的?
    • 同源是什么意思?看起来我只能在从主存储库创建子存储库时创建它。有没有办法检查存储库是否相关?
    • 一个克隆总是与它被克隆的仓库相关(反之亦然):它们有一个共同的提交历史。但是,您已经检查过了:它们不相关......您还可以比较存储库中的提交历史记录/哈希(是存储库历史编辑之一吗?)。但是关于创建子仓库:子仓库是一个完全普通的仓库,不需要特殊的创建方式。只需告诉“主”存储库它有一个子存储库(以及在哪里),就是这样。出于这个原因,为子存储库创建一个全新的存储库可能是造成混乱的原因。
    • 我正在将主存储库推送到 bitbucket 空存储库,但出现错误。然后在 bitbucket 中我会剥离以使存储库再次为空。现在我再次推动 bitbucket 并且它有效。我重复了几次。 wtf?
    【解决方案2】:

    您需要更改 .hgsub 文件。 默认情况下,此文件具有以下格式:

    [folder to sub repo] = [folder to sub repo]
    

    你需要改变它:

    [folder to sub repo] = [sub repo url]
    

    【讨论】:

      猜你喜欢
      • 2013-03-02
      • 1970-01-01
      • 1970-01-01
      • 2013-02-14
      • 1970-01-01
      • 2011-04-29
      • 2016-05-10
      • 2018-10-24
      • 2020-01-21
      相关资源
      最近更新 更多