1

我有一个像这样的 Windows 文件结构:

Stable
    ProjectA
    SharedLibrary

Stable包含主要回购。 ProjectA并且SharedLibraryStable. 该.hgsub文件包含:

ProjectA = ProjectA
SharedLibrary = SharedLibrary

在大多数情况下,一切似乎都正常工作。主仓库将识别子仓库,我可以hg status -S在主仓库上做类似的事情,它将通过子仓库递归。 commit似乎也可以正常工作。

当我尝试cloneStable(主仓库)时,尝试ProjectA使用以下消息克隆子仓库时失败:

unknown revision 'a855f4fe17c393d5863409f1443fc93b36787fa9'
[command returned code 255 Mon Mar 12 09:25:47 2012]

但是,我已经验证了修订版是正确的并且存在于ProjectAsubrepo 中。我可以clone每个子仓库都没有任何问题。

到目前为止,我已经尝试过:1)删除每个存储库并重新开始。2) 重新安装 TortoiseHg/Mercurial。3) 确保 .hgsubstate 中列出的修订版是正确的并且存在于每个子存储库中。

有任何解决这个问题的方法吗?

编辑:当cloneStable主)回购失败时,它会离开目标目录,克隆Stable没有任何子回购。我可以去 cloned Stable,做一个hg update tip,它会成功克隆ProjectAsubrepo 但无法克隆SharedLibrary,并出现相同的“未知修订”错误。然后我可以再次运行hg update tip,它将成功克隆SharedLibrary子存储库。那时一切都是正确的,就像克隆一开始就正常工作一样。

编辑2:内容.hgsubstate

a855f4fe17c393d5863409f1443fc93b36787fa9 ProjectAd72ef29a5656e5413322c1d20d5830448d558605 SharedLibrary

ProjectA和变更集 id之间没有空格SharedLibrary,但我想这正是 Mercurial 的做法。两个变更集.hgsubstate都存在于相应的子存储库中。

编辑 3: hg log --debug -r tip来自ProjectAsubrepo。显示正确的变更集存在

Z:\Programming\KSuite\Stable\Client\KClient>hg log --debug -r tip
changeset:   4:a855f4fe17c393d5863409f1443fc93b36787fa9
tag:         tip
parent:      3:eb01e88027c893267422fcb67f035ba31d8cdbdc
parent:      2:5b5ffd7f96915ca792507820ccfbee35707148d0
manifest:    4:e90960833c0708ec7f99ccded11c46ca45b46542
user:        Casey ******** <*redacted*@.com>
date:        Fri Mar 09 18:22:50 2012 -0500
files:       .hgignore
files-:      KClient.suo
extra:       branch=default
description:
Merging changes in Stable to Dev.
4

0 回答 0