10

注意:我昨天在kiln.stackexchange.com上问过这个问题,但没有得到答案,这阻碍了我的工作。所以我想我会在这里试一试。

我的主要 mercurial 存储库中有一堆子存储库。在初始设置期间,我的.hgsub. 即,我将两个子存储库指向同一个目录。

我应该有的:

sites/1=sites/1
sites/2=sites/2
sites/3=sites/3

我实际拥有的:

sites/1=sites/1
sites/2=sites/2
sites/2=sites/3

愚蠢的复制/粘贴错误。我犯了不正确的.hgsub,没有意识到我的错误。几次修改后,在.hgsub.hgsub. 我承诺并继续前进。我已经完成了一些我不想重做的合理工作,因为我“修复”了.hgsub.

现在我们来解决实际问题:我在 subrepository 中进行了一些更改sites/3,当我尝试提交主存储库时,出现以下错误:

abort: unknown revision 'LongGUIDLookingString'

我发现了这个讨论,它似乎解决了我遇到的同样问题,但我不太清楚 bos 是如何解决它的。为了解决这个问题,我需要做什么?

的相关部分.hgsubstate

7d1e430ac5f12e00cb5bebcdf693e72db2c45732 sites/1
6eea936a5b7cfff6169f59d0dc1c8c4eb5f8412d sites/2
e2b83b301997de8add1b659d82a7ab8201bda653 sites/3
4

2 回答 2

13

我猜 .hgsubstate 文件现在包含来自 repo2 条目中 repo3 的 hashid (这是你的 LongGUIDLookingString 是什么)。

尝试编辑 .hgsubstate 以指向每个 repo 的正确/当前 hashid。

如果这不起作用,请粘贴我您的 .hgsubstate 文件,以便我们查看如何调整它。

于 2010-03-11T20:06:38.197 回答
0

对于那些努力提交更改的人来说.hgsubstate,似乎:

  • hg commit -i不工作,而
  • hg commit -m做。
于 2020-09-18T14:32:55.183 回答