Использование mercurial с hg-git в качестве клиента github
Я довольный пользователь Mercurial, и я хотел бы использовать его для работы с некоторыми репозиториями на GitHub. Я установил hg-git
(все еще возникают проблемы с подключением, но это не вопрос), и я посмотрел документацию и различные вопросы здесь, на SO, но я все еще не уверен, насколько полно решение, которое оно предоставляет.
Есть ли важные особенности git / github, для которых
hg
+hg-git
поддержка недоступна, ограничена или подвержена проблемам? Я использую ветвления и слияния, теги, а иногда и Mercurialcommit --amend
команда. Мне на самом деле не нужны закладки, подпункты, пользовательские перехватчики или очереди исправлений Mercurial.Есть ли проблемы или ограничения из-за различных моделей ветвления
git
а такжеhg
? ( Этот шестилетний вопрос говорит о том, что в то время это был непростой опыт.)На
hg-git
На сайте я прочитал, что "Теоретически идентификаторы наборов изменений не должны изменяться [в hg -> git -> hg преобразование], хотя это может не иметь места для сложных историй". Насколько я должен беспокоиться об этом? Может ли это произойти, если я просто синхронизирую (в обоих направлениях) междуgithub
и одинhg
Сделки РЕПО?
Я смотрю на два варианта использования:
А) Использование hg
как клиент github для проекта с большим количеством веток, который обычно разрабатывается пользователями git (master
филиал и т. д.)
Б) Использование github
разместить мои собственные (меньшие) проекты, которые я разрабатываю с помощью Mercurial.
Я не ожидаю 100% полной замены. Я имею и использую git
Я просто предпочитаю работать с hg
на ежедневной основе. Я делаю большую часть своей работы на OS X, если это имеет значение.
1 ответ
- Существуют ограничения на использование
hg-git
, такие какgit-lfs
, Репозитории, использующие большие файлы, не будут работать. Существуют угловые случаи, такие как слияния осьминогов (слияния с более чем двумя предками), которые вызовут проблемы со стороны Mercurial, а также не имеют эквивалента в Mercurial. Однако в повседневной работе такие ограничения встречаются редко. В большинстве случаев hg-git просто отлично работает. - Ртутные ветви не могут быть должным образом отражены в Git, так как git не имеет той же концепции. Я думаю, что hg-git отображает ветви в закладки, поэтому вы должны продолжать использовать закладки. Если вы хотите перенести именованную ветку куда-нибудь в репозиторий git, а затем на стороне git его переименовать, вы не можете переименовать именованную ветку в Mercurial, поэтому избегайте именованных веток.
- В вашем случае это, скорее всего, будет хорошо. Ошибки hg->git->hg возникают из-за, например, преобразований ветвей имен, отсутствия слияний осьминогов и т. д.