Легкая миграция с Mercurial на Git и обратно? - PullRequest
4 голосов
/ 14 декабря 2011

Я пытаюсь выбрать между Git и Mercurial, и какое бы решение я ни принял, я бы хотел знать, насколько сложно перейти с одного SCM на другой.

Я знаю, что есть экспорт + импортопций в обоих инструментах, я просто хотел бы знать, сохранит ли он такие вещи, как ветви, теги и т. д. Кроме того, будут ли другие последствия, такие как неработающие ссылки на коммиты из баг-трекера и т. д .?

Ответы [ 2 ]

7 голосов
/ 14 декабря 2011

Позвольте мне ответить на два ваших вопроса:

  • В большинстве случаев можно легко сопоставить две системы, поскольку их базовые модели очень похожи. Тем не менее, есть несколько вещей, которые нельзя отобразить взад и вперед. Два примера: ветви имен в Mercurial не имеют прямого эквивалента в Git, а слияния осьминогов Git не поддерживаются Mercurial.

    Существуют такие инструменты, как hg-git , которые очень хорошо позволяют вам использовать Mercurial в качестве клиента для репозитория Git. Это двусторонний мост между системами, и это означает, что вы можете использовать его для преобразования в обоих направлениях. Он хорошо работает для многих людей и сохранит такие вещи, как теги и ветви.

  • Да, будут неправильные ссылки от внешних инструментов - хотя оба инструмента используют SHA-1 для генерации хеш-кодов наборов изменений, они имеют разные вещи и поэтому предлагают разные идентификаторы для наборов изменений, которые в противном случае должны быть одинаковыми.

0 голосов
/ 16 декабря 2011

Хотя Git и Mercurial распространены в корнях, они имеют некоторые существенные различия

  • Git использует собственный жаргон, которого не существует (в большой части) или одни и те же термины имеют разное значение в мире DVCS, вы должны принять эти изменения на переключение между VCS
  • Для модели данных: Mercurial хранит больше метаданных в репо по сравнению с Git, поэтому - если вы конвертируете репозитории из одного SCM в другой и обратно, Mercurial -> Git -> Mercurial и Git -> Mercurial -> Git покажет у вас разные результаты по сравнению репо с Step1 и Step3. Путь GMG сохраняет все данные как есть, для MGM вы обнаружите некоторую потерю данных в окончательном репозитории Mercurial
  • Mercurial имеет более зрелый графический интерфейс в мире Windows, чем Git, ориентированный на CLI
...