Не может клонировать Mercurial subrepo из основного репо, не с неизвестной ревизией? - PullRequest
1 голос
/ 12 марта 2012

У меня есть файловая структура 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.
...