Преобразование хранилища Mercurial (hg) в Git в Windows (7) - PullRequest
23 голосов
/ 16 июля 2010

Я действительно очень расстроен в этот момент.У меня есть существующий репозиторий hg, в котором есть месяцы истории кодирования, и я хочу перенести это в частный репозиторий Github, чтобы я мог работать над этим оттуда.К сожалению, я использую Windows, и я не могу найти какой-либо способ конвертировать репозиторий, который я могу заставить работать должным образом.Практически каждая помощь и совет, которые я могу найти в Интернете, похоже, предполагают, что я использую какую-то оболочку * nix, которой я не являюсь.

Я сейчас установил: TortoiseHG, Python 3.1 и Git для Windows.

Что я пробовал:

  1. плагин hg-init для hg - Когда я пытаюсь использовать команду gexport (и другие из hg-git), япросто получите строки исключений Python.Я совершенно не могу заставить Git даже распознать команду gremote.Я попытался следовать тому, что было здесь: http://github.com/blog/439-hg-git-mercurial-plugin

  2. hg-to-git (быстрый экспорт) - все учебные пособия ожидают от меня запуска файла .sh.Другой поток stackoverflow, казалось, подразумевал, что Powershell может запускать файлы .sh, но я не могу заставить его запускать их на всю жизнь.Пример: http://hivelogic.com/articles/converting-from-mercurial-to-git

  3. Конвертер Mercurial в git - http://permalink.gmane.org/gmane.comp.version-control.git/36601 - Этот не хочет работать, когда я запускаю его через Python, который жалуется, что у него есть синтаксическая ошибка настрока 44. Я не знаю python, поэтому понятия не имею.

Четыре часа поиска и поиска в Google с помощью бесполезных обучающих программ и людей, которым повезло больше, чем мнепеть похвалы каждому якобы полезному сообщению в блоге, но я нигде не получил с этим.Может ли кто-нибудь предложить какую-либо помощь или предложения для меня попробовать

Ответы [ 6 ]

19 голосов
/ 17 июля 2010
  1. Установка Cygwin (с python, hg, git)
  2. Установка git-hg
  3. run git-hg clone ...url...

Или скажите мне, что URL для этого вашего hg репо, и я могу преобразовать его для вас.

7 голосов
/ 04 июня 2015

Существует много противоречивой информации о том, как конвертировать репозитории Mercurial в Git в Windows.Это действительно довольно просто и требует только TortoiseHg и Git для установки.

Подготовка

Включите hg-git, добавив в файл конфигурации Mercurial следующее (% Userprofile% \ mercurial.ini ):

[extensions]
hggit = 
hgext.bookmarks =

[git]
intree = True

Преобразование

Перейдите в каталог репозитория (который содержит подкаталог .hg ) в командной строке и выполните следующую командукоманды:

hg bookmark -r default master
hg gexport --debug
git config --bool core.bare false
git reset HEAD -- .

Дополнительная информация

Подробное описание этих шагов вы можете найти в моей статье блога на эту тему.

2 голосов
/ 11 апреля 2014

Все, что я читал об этих преобразователях Hg для Git, указывает на одну очевидную ошибку, которую вы сделали: Использование Python 3!

Эти ошибки Python, которые вы получаете, происходят из-за таких сценариев, как hg-git и fast-export строятся с использованием Python 2.6.Python 3 обрабатывает «печать» по-разному, поэтому ваши ошибки.

Либо перепишите сценарии для работы с вашей версией, либо установите Python 2.6.

Обязательно добавьте его в настройку PATH.То же самое относится и к установке msysGit.Убедитесь, что вы выбрали вторую опцию при установке, чтобы добавить Git на свой путь.

Вам также нужен Mercurial For Python, доступный в проекте TortoiseHG thg-winbuild:

https://bitbucket.org/tortoisehg/thg-winbuild/downloads

Файл будет называться «mercurial-2.2.2.win-amd64-py2.6.exe» для 64-битной Windows и «mercurial-2.2.2.win32-py2.6.exe» для 32-битной.Пока вы работаете, получите на всякий случай сопутствующий установщик Mercurial 2.2.2.

Хотя вы заявили, что не хотите устанавливать еще одно программное обеспечение VCS, использование любого из этих преобразователей Hg требует, чтобы Mercurialтакже должны быть установлены.

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

Обязательно внимательно прочитайте руководства и файлы Readme для любого конвертера, который вы выберете при использовании.Кажется, что многие ваши печали и неприятности связаны с нетерпеливым переходом в глубокий конец только после просмотра документации.

Доступны патчи, которые добавляют поддержку Mercurial для Git и msysGit, но вам нужноудобен для исправления и компиляции из источника, если вы хотите следовать по этому пути.

2 голосов
/ 16 июля 2010

Рассматривали ли вы установку msysgit ? Это оболочка git bash, которую она дает, должна иметь возможность запускать файлы .sh.

0 голосов
/ 06 февраля 2019

Если оригинальное репозиторий Mercurial доступно в Интернете, и если вы не возражаете против использования GitHub для этого, преобразование из Mercurial в Git теперь тривиально легко:

  1. Войдите в GitHub.
  2. Нажмите + в правом верхнем углу.
  3. Выберите Import repository.
  4. Укажите URL-адрес хранилища Mercurial, имя для него под своей учетной записью и будет ли он общедоступным или личным.
  5. Нажмите Begin import и подождите.

Вам даже не нужно оставаться на странице после этого. Через некоторое время GitHub уведомит вас по электронной почте о завершении импорта.

0 голосов
/ 16 июля 2010

Это может показаться глупым (или решением для отчаявшихся ...), но я думаю, что Bazaar имеет хорошую поддержку для репозиториев Hg и Git, и он хорошо работает в Windows.
Так что, если ничего не помогает, возможно, вы можете использовать bzr-hg и bzr-git, чтобы выполнить преобразование ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...