Mercurial hg子存储库问题 - “中止:未知修订版”

时间:2010-03-11 16:24:21

标签: mercurial subrepos

注意:昨天我在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中的错误。

现在我们来看实际问题:我在子库sites/3中做了一些更改,当我尝试提交主存储库时,我收到以下错误:

abort: unknown revision 'LongGUIDLookingString'

我找到this discussion,这似乎解决了我遇到的同样问题,但我无法弄清楚bos是如何修复它的。我需要做些什么才能解决这个问题?

.hgsubstate的相关部分:

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

2 个答案:

答案 0 :(得分:13)

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

尝试编辑.hgsubstate以指向每个仓库的正确/现有哈希值。

如果这不起作用,请粘贴我的.hgsubstate文件,这样我们就可以看到它是如何调整的。

答案 1 :(得分:0)

对于那些难以对.hgsubstate进行更改的人来说,

  • hg commit -i在以下时间不起作用
  • hg commit -m可以。
相关问题