Использование mercurial с hg-git в качестве клиента github

Я довольный пользователь Mercurial, и я хотел бы использовать его для работы с некоторыми репозиториями на GitHub. Я установил hg-git (все еще возникают проблемы с подключением, но это не вопрос), и я посмотрел документацию и различные вопросы здесь, на SO, но я все еще не уверен, насколько полно решение, которое оно предоставляет.

  1. Есть ли важные особенности git / github, для которых hg + hg-git поддержка недоступна, ограничена или подвержена проблемам? Я использую ветвления и слияния, теги, а иногда и Mercurial commit --amend команда. Мне на самом деле не нужны закладки, подпункты, пользовательские перехватчики или очереди исправлений Mercurial.

  2. Есть ли проблемы или ограничения из-за различных моделей ветвления git а также hg? ( Этот шестилетний вопрос говорит о том, что в то время это был непростой опыт.)

  3. На hg-git На сайте я прочитал, что "Теоретически идентификаторы наборов изменений не должны изменяться [в hg -> git -> hg преобразование], хотя это может не иметь места для сложных историй". Насколько я должен беспокоиться об этом? Может ли это произойти, если я просто синхронизирую (в обоих направлениях) между github и один hg Сделки РЕПО?

Я смотрю на два варианта использования:

А) Использование hg как клиент github для проекта с большим количеством веток, который обычно разрабатывается пользователями git (master филиал и т. д.)

Б) Использование github разместить мои собственные (меньшие) проекты, которые я разрабатываю с помощью Mercurial.

Я не ожидаю 100% полной замены. Я имею и использую git Я просто предпочитаю работать с hg на ежедневной основе. Я делаю большую часть своей работы на OS X, если это имеет значение.

1 ответ

Решение
  1. Существуют ограничения на использование hg-git, такие как git-lfs, Репозитории, использующие большие файлы, не будут работать. Существуют угловые случаи, такие как слияния осьминогов (слияния с более чем двумя предками), которые вызовут проблемы со стороны Mercurial, а также не имеют эквивалента в Mercurial. Однако в повседневной работе такие ограничения встречаются редко. В большинстве случаев hg-git просто отлично работает.
  2. Ртутные ветви не могут быть должным образом отражены в Git, так как git не имеет той же концепции. Я думаю, что hg-git отображает ветви в закладки, поэтому вы должны продолжать использовать закладки. Если вы хотите перенести именованную ветку куда-нибудь в репозиторий git, а затем на стороне git его переименовать, вы не можете переименовать именованную ветку в Mercurial, поэтому избегайте именованных веток.
  3. В вашем случае это, скорее всего, будет хорошо. Ошибки hg->git->hg возникают из-за, например, преобразований ветвей имен, отсутствия слияний осьминогов и т. д.
Другие вопросы по тегам