У меня есть файловая структура Windows, например:
Stable
ProjectA
SharedLibrary
Stable
содержит основной репо. ProjectA
и SharedLibrary
являются подпунктами Stable
. Файл .hgsub
содержит:
ProjectA = ProjectA
SharedLibrary = SharedLibrary
В большинстве случаев все работает правильно. Главный репозиторий распознает вложенные репозитории, и я могу делать такие вещи, как hg status -S
в основном репо, и он будет повторяться через вложенные репо. commit
также, кажется, работает правильно.
Когда я пытаюсь clone
из Stable
(основной репо), происходит сбой при попытке клонировать подпункт ProjectA
со следующим сообщением:
unknown revision 'a855f4fe17c393d5863409f1443fc93b36787fa9'
[command returned code 255 Mon Mar 12 09:25:47 2012]
Однако я убедился, что ревизия верна и присутствует в подпункте ProjectA
. Я могу clone
каждый подпункт без проблем.
Пока я пробовал:
1) Удаление каждого репозитория и начало заново.
2) Переустановка TortoiseHg / Mercurial.
3) Убедитесь, что версия, указанная в .hgsubstate, правильная и присутствует в каждом подпункте.
Есть ли способ это исправить?
EDIT:
Когда clone
из Stable
(основного) репозитория терпит неудачу, он оставляет целевой каталог с клоном Stable
без каких-либо подпунктов. Я могу перейти к клонированному Stable
, выполнить hg update tip
, и он успешно клонирует подпункт ProjectA
, но не сможет клонировать SharedLibrary
с той же ошибкой «неизвестной ревизии». Затем я могу снова запустить hg update tip
, и он успешно клонирует подпункт SharedLibrary
. В этот момент все правильно, как если бы клон работал правильно с самого начала.
РЕДАКТИРОВАТЬ 2: Содержание .hgsubstate
:
a855f4fe17c393d5863409f1443fc93b36787fa9 ProjectAd72ef29a5656e5413322c1d20d5830448d558605 SharedLibrary
Между ProjectA
и идентификатором набора изменений для SharedLibrary
нет пробела, но, думаю, именно так Mercurial и делает. Оба набора изменений в .hgsubstate
присутствуют в соответствующем подпункте.
РЕДАКТИРОВАТЬ 3: hg log --debug -r tip
из ProjectA
subrepo. показывает правильную ревизию
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.