У меня есть хранилище Mercurial, которое выглядит так:
SWClients/
SWCommon
SWB
SWNS
... где SWCommon - это библиотека, общая для двух других проектов. Теперь я хочу преобразовать SWCommon в под-хранилище SWClients, поэтому я следовал инструкциям здесь и здесь . Однако, в отличие от примера в первой ссылке, я хочу, чтобы мой суб-репозиторий имел то же имя, что и папка в начале. Подробно вот что я сделал:
Создайте файл map.txt следующим образом
include SWCommon
rename SWCommon .
Создайте файл .hgsub следующим образом
SWCommon = SWCommon
Затем запустите
$ hg --config extensions.hgext.convert= convert --filemap map.txt . SWCommon-temp
...lots of stuff happens...
Тогда
$ cd SWCommon-temp
$ hg update
101 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd ..
$ mv SWCommon SWCommon-old
$ mv SWCommon-temp SWCommon
$ hg status
abort: path 'SWCommon/SWCommon.xcodeproj/xcuserdata/malte.xcuserdatad/xcschemes/SWCommon.xcscheme' is inside nested repo 'SWCommon'
... это действительно так, но почему это причина для прерывания? Другая странная вещь заключается в том, что если я не сделаю последнее «mv» выше и выполню «hg status», я получу множество «отсутствующих» файлов в SWCommon, как и следовало ожидать. Пример в ссылке никогда не делает это далеко и в основном останавливается на обновлении hg выше? Как заставить это работать на практике?