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

Мне нравится Mercurial. Очень нравится. Буквально все нравится в нем. Так что, как вы понимаете у меня не возникает никакого желания переходить ни на git, ни на что-либо еще. Но вот пришла беда…

Jordan Mechner выложил исходники Prince of Persia на GitHub. Сказать по чести – я никогда не прочитаю столько кода на асме (на котором, я читаю, мягко говоря, не великолепно), но иметь у себя в запасниках сорцы POP – дело святое, благо места много не займет. И тут встал ребром вопрос о том, как же мне их получить.

Естественно, ставить себе еще и git желания никакого не было – хватает и меркуриаловского значка мне в трее. Решение пришло методом короткого гугления – Hg-Git. Это очень неплохой плагин для Mercurial, который позволяет работать с GitHub из православной системы. Решение не идеальное, но приближеное к таковому.

Дабы и вы могли воспользоваться всеми прелестями гита, не пребегая к клиентам короткий ликбез по установке:

  1. Идем на BitBucket.

  2. Стягиваем репу Hg-Git: hg clone https://bitbucket.org/durin42/hg-git

  3. Затем тащимся в папку вашего пользователя и ищем там Mercurial.ini

  4. Открываем файл и в раздел [extensions] добавляем строку hggit = C:\путь\до\репы\hggit

  5. PROFIT!

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

Склонировать гитовую репу можно обычным способом: hg clone git://github.com/schacon/hg-git.git

А вот если хочется использовать этот репозиторий для дальнейшего пуша нужно немного усложнить команду: hg clone git+ssh://git@github.com/schacon/hg-git.git

hg pull получит апдейты.

А вот таким способом можно конвертировать Mercurial репозиторий в git:

mkdir git-repo; cd git-repo; git init; cd ..
cd hg-repo
hg bookmarks hg
hg push git+ssh://localhost:git-repo

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