Преобразование Mercurial-репозитория в формат Git

Материал из xrWiki
Версия от 11:32, 21 апреля 2020; RedPython (обсуждение | вклад) (Новая страница: «== Преобразование из .hg в .git с помощью расширения hggit для клиента TortoiseHG== === Подготовка === Пр…»)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Преобразование из .hg в .git с помощью расширения hggit для клиента TortoiseHG

Подготовка

Предполагается, что в системе уже установлены TortoiseHG и Git.

Расширение hggit поставляется в комплекте с самой черепахой. Его нужно включить в настройках (Файл -> Настройки -> hggit).

hg-to-git-tutorial-hggit-01.png

Но это не всё. Далее нужно залезть в файл настроек (путь к нему указан на в окошке настроек черепахи) и удостовериться, что секции [extensions] и [git] существуют и выглядят так:

[extensions]
hggit = 
hgext.bookmarks =

[git]
intree = True<syntaxhighlight lang="text">

Если какие-то параметры отсутствуют, то их нужно дописать.

Далее нужно слить все ветки hg-репозитория в одну под стандартным именем default. Иначе преобразуется не всё.

Только после этого можно приступать к собственно процессу преобразования.

Преобразование

Открыть консоль Git и последовательно вводить команды:

  1. hg bookmark -r default master – создать закладку master на ветке default
  2. hg gexport --debug – преобразует репозиторий в формат git
  3. git config --bool core.bare false – некое специфичное для git преобразование "пустого" репо в "рабочий"
  4. git reset HEAD -- . - некая специфичная для git манипуляция с индексом файлов, без неё репо будет неработоспособным
hg-to-git-tutorial-hggit-02.png

Если что-то не получилось и вы потерялись, то всегда можно вбить команду gclear – она уничтожит каталог .git и все файлы в нём, не затрагивая hg-репо.

Проверка результатов

Полученный git-репозиторий можно открыть в одном из более-менее дружелюбных клиентов (и это НЕ TortoiseGit!), например, SmartGit или SourceTree (последний не устанавливается под Windows 7). Если всё получилось, то вы должны увидеть адекватный граф изменений.

hg-to-git-tutorial-hggit-03.png

После этого нужно обязательно указать ссылку на ваш git-репозиторий, расположенный на удалённом сервере (параметр remote или что-то подобное). HTTPS-ссылка даётся в следующем формате: https://имя_юзера@bitbucket.org/stalker/имя_репозитория.git После указания ссылки на сервер можно затягивать и проталкивать изменения.