Конвертируем Hg в Git на Bitbucket

Простая пошаговая инструкция по переносу проекта из Hg-репозитория в Git-репозиторий. Все делается на Bitbucket под Linux Ubuntu. Предварительно настроена ssh-авторизация.

1. Установка плагина hggit

Плагин дополнительно установит Mercurial, если его нет в системе.

sudo apt install mercurial-git

Включаем расширение добавив в файл ~/.hgrc:

[extensions]
hggit=

Проверяем наличие плагина

Проверяем командой:

python -c "import hggit"

Если видим ошибку, то надо установить плагин отдельно для основного Python-а. Устанавливаем командой:

$ sudo pip install hg-git

2. Перенос репозитория в Git

Переименуем текущий Hg-репозиторий, например в hg.project-name и создадим пустой Git-репозиторий для импорта кода.

Первым делом, добавим bookmark в Hg репозитории, чтобы master ссылался на default. Это поможет в будущем:

$ cd ~/hg.project/
$ hg clone {hg_rep_url} .
$ hg bookmark -r default master

Теперь, можно залить код проекта в новый репозиторий Git:

$ hg push git+ssh://{git_rep_url}

3. Переключение локального репозитория на Git

Теперь Git-репозиторий залит на Bitbucket и можно его привязать к локальному проекту.

Для привязки выполним следующие команды:

$ git init
$ git remote add origin git@bitbucket.org:realer/project.git
$ git pull origin master 
$ git reset --hard HEAD

Источник здесь.