Я имел большой успех с git-hg
от https://github.com/cosmin/git-hg (требует работы установки hg
, тоже). Он поддерживает fetch, pull и push и более стабилен для меня, чем hg-git
(аналогичные функции hg
для git).
См. Https://github.com/cosmin/git-hg#usage для примеров использования. Пользовательский интерфейс очень похож на git-svn
.
git-hg
Требует дополнительного дискового пространства для каждого клонированного рт.ст. репо. Реализация использует полный ртутный клон, дополнительный клон git и реальное репозиторий git. Требуемое дисковое пространство примерно в 3 раза больше обычного использования GIT. Дополнительные копии хранятся под .git
каталогом вашего рабочего каталога (или места, на которое GIT_DIR
обычно указывает ).
Примечание . Основная проблема, которую git-hg
нужно решить, заключается в том, что между функциями git
и hg
функциями нет сопоставления 1: 1 . Самой большой проблемой является несоответствие между сопротивлением GIT ветвей и ¯hG безымянных ветвей и ¯hG имени филиалов и ¯hG закладки (все из этих очень похожи на ветви для git
пользователей). Связанная проблема заключается в том, что hg
попытка сохранить оригинальное имя именованной ветви в истории версий, в отличие от git, где имя ветви добавляется только в сообщение фиксации шаблона по умолчанию.
Любой инструмент, который утверждает, что создает совместимый мост между git
и hg
должен объяснить, как он будет работать с этим согласованием импедансов. Затем вы можете решить, соответствует ли выбранное решение вашим потребностям.
Решение, которое git-hg
используется, состоит в том, чтобы отбросить все закладки hg и преобразовать именованные ветви в ветви git. Кроме того, он устанавливает ветку git master на неименованную ветку hg по умолчанию.