Преобразование Mercurial-репозитория в формат Git
Содержание
Преобразование из .hg в .git с помощью расширения hggit для клиента TortoiseHG[править]
Подготовка[править]
Предполагается, что в системе уже установлены TortoiseHG и Git.
Расширение hggit поставляется в комплекте с самой черепахой. Его нужно включить в настройках (Файл -> Настройки -> hggit).
Но это не всё. Далее нужно залезть в файл настроек (путь к нему указан на в окошке настроек черепахи) и удостовериться, что секции [extensions] и [git] существуют и выглядят так:
[extensions]
hggit =
hgext.bookmarks =
[git]
intree = True
Если какие-то параметры отсутствуют, то их нужно дописать.
Далее нужно слить все ветки hg-репозитория в одну под стандартным именем default. Иначе преобразуется не всё.
Только после этого можно приступать к собственно процессу преобразования.
Преобразование[править]
Открыть консоль Git и последовательно вводить команды:
-
hg bookmark -r default master
– создать закладку master на ветке default -
hg gexport --debug
– преобразует репозиторий в формат git -
git config --bool core.bare false
– некое специфичное для git преобразование "пустого" репо в "рабочий" -
git reset HEAD -- .
- некая специфичная для git манипуляция с индексом файлов, без неё репо будет неработоспособным
Если что-то не получилось и вы потерялись, то всегда можно вбить команду gclear
– она уничтожит каталог .git и все файлы в нём, не затрагивая hg-репо.
Проверка результатов[править]
Полученный git-репозиторий можно открыть в одном из более-менее дружелюбных клиентов (и это НЕ TortoiseGit!), например, SmartGit или SourceTree (последний не устанавливается под Windows 7). Если всё получилось, то вы должны увидеть адекватный граф изменений.
После этого нужно обязательно указать ссылку на ваш git-репозиторий, расположенный на удалённом сервере (параметр remote или что-то подобное). HTTPS-ссылка даётся в следующем формате:
https://имя_юзера@bitbucket.org/stalker/имя_репозитория.git
После указания ссылки на сервер можно затягивать и проталкивать изменения.