Mercurial конвертировать с файловой картой в отдельные подпапки создает пустой репозиторий - PullRequest
1 голос
/ 28 июня 2010

У меня большой репозиторий Hg (2 + ГБ), который был конвертирован из репозитория SVN. У него есть несколько веб-сайтов, и мы хотим разделить их на отдельные репозитории Hg. Репозитории находятся на Windows 2008 Server, и мы используем hg, который поставляется с TortoiseHg.

Мы пытались использовать метод convert с файловой картой для создания нового репо из преобразованного репозитория.

Проблема в том, что команда проходит через все наборы изменений в исходном репо, но вновь созданное репо пусто.

Вот как выглядит командная строка:

hg convert -s hg --filemap "hgsplitstaticsites-site1.txt" staticsites-hg "C:\projects\marcelsprojects\hgversions\site1-hg"

Карта файла выглядит следующим образом:

include staticsites-hg/site1
rename staticsites-hg/site1 .

Любая помощь будет принята с благодарностью.

мы также пытались запустить hg convert для подпапки в репозитории svn, но это фактически выдает исключение и завершается.


Мы отказались от этого, просто разделили подпапки на отдельные репозитории Hg и потеряли всю историю версий.

Ответы [ 6 ]

3 голосов
/ 23 октября 2011

У меня тоже была проблема с пустым хранилищем. Проблема в моем случае заключалась в том, что я использовал имена путей в стиле Windows (с обратной косой чертой вместо обычной косой черты) в моей файловой карте следующим образом:

include src\file1.pas
include src\file2.pas
...

Но это должно было быть в формате POSIX:

include src/file1.pas
include src/file2.pas
...

Очевидно, что вы также не можете добавлять ./ к пути, так как он также создал пустой репозиторий.

Ваша файловая карта выглядит хорошо, поэтому это не могло быть причиной в вашем случае, но, возможно, это поможет другим, у которых возникла эта проблема, и найти эту страницу через Google.

2 голосов
/ 02 октября 2014

Этот ответ был точным: на самом деле вы создаете не пустой каталог, а каталог со скрытым каталогом .hg. Если вы запускаете

hg update

в вашем целевом каталоге, у вас будет целевой каталог со всем его содержимым, как и ожидалось.

1 голос
/ 19 марта 2013

Моя проблема с пустым репозиторием была вызвана тем, что имена файлов в карте файлов были неправильного регистра.

0 голосов
/ 25 мая 2011

У меня была такая же проблема, она вызвана вашей строкой включения.Вам необходимо указать относительный путь, а не репозиторий ..

Например

svnrepo > branches |
        | tags     |
        | trunk    > Project1
                   | Project2

Ваша файловая карта должна выглядеть следующим образом

, включая Project1

0 голосов
/ 14 февраля 2011

Я написал пакетный скрипт, чтобы помочь с запуском команды hg convert. Могу ли я клонировать часть хранилища Mercurial?

0 голосов
/ 29 июня 2010

Каков выход hg convert? Что вы подразумеваете под пустым хранилищем? Если вы делаете hg log в целевом хранилище, есть ли у вас какие-либо записи?

...