Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mercurial “错误”;“存储库不相关”;将带有子存储库的存储库推送到bitbucket时_Mercurial_Bitbucket - Fatal编程技术网

Mercurial “错误”;“存储库不相关”;将带有子存储库的存储库推送到bitbucket时

Mercurial “错误”;“存储库不相关”;将带有子存储库的存储库推送到bitbucket时,mercurial,bitbucket,Mercurial,Bitbucket,有一个存储库(GameFramework),我想在另一个存储库中用作子存储库 我创建了一个新的主存储库,然后将GameFramework克隆到这个存储库中,并将GameFramework作为一个子存储库。但当我试图将主存储库推送到bitbucket时,我得到了一个错误:存储库不相关或存储库不相关(在subrepo[path]中) 这很奇怪,但当出现错误后,我清除了bitbucket存储库,然后再次推送,它就工作了 我拍了录像 为什么会发生这种情况?mercurial认为两个存储库是不相关的,如果

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

我创建了一个新的主存储库,然后将GameFramework克隆到这个存储库中,并将GameFramework作为一个子存储库。但当我试图将主存储库推送到bitbucket时,我得到了一个错误:
存储库不相关
存储库不相关(在subrepo[path]中)

这很奇怪,但当出现错误后,我清除了bitbucket存储库,然后再次推送,它就工作了

我拍了录像


为什么会发生这种情况?

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

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

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


解决这个问题有点棘手。最简单的方法可能是改变为一种次级回购协议。从其他子回购中提取,并根据需要进行合并。也可以用另一种方法来做。

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

[folder to sub repo] = [folder to sub repo]
您需要将其更改为:

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

如果第二个存储库是从第一个存储库克隆的,那么这些存储库是相关的还是不相关的?同一个源是什么意思?看起来只有在从主存储库创建子存储库时才能创建它。有没有办法检查存储库是否相关?克隆总是与从中克隆的repo相关(反之亦然):它们有一个共同的提交历史记录。但是,你已经检查过了:他们没有关系。。。您还可以比较repos中的提交历史记录/哈希(是否编辑了repos历史记录?)。但关于创建次级回购:次级回购是一种完全普通的回购,不需要特殊的创建方式。只要告诉“主”回购协议,它有一个子回购协议(和在哪里),就是这样。由于这个原因,为子回购创建一个全新的回购可能是造成混乱的原因。我将主存储库推到了bitbucket空存储库,结果出现了错误。然后,在bitbucket中,我会将存储库再次清空。现在我又在推bitbucket了,它成功了。我重复了几次。世界跆拳道联盟?