Подтвердить что ты не робот

Преобразование репозитория Mercurial (hg) в Git в Windows (7)

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

В настоящее время я установил: TortoiseHG, Python 3.1 и Git для Windows.

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

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

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

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

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

4b9b3361

Ответ 1

  • Установите Cygwin (с помощью python, hg, git)
  • Установить git-hg
  • run git-hg clone ...url...

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

Ответ 2

Существует много противоречивой информации о том, как конвертировать 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 -- .

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

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

Ответ 3

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

Ответ 4

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

Те ошибки Python, которые вы получали, связаны с такими сценариями, как hg- git и быстрым экспортом, созданным с использованием 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, но вам нужно будет быть удобным с исправлением и компиляцией из исходного кода, если вы хотите следовать этому маршруту.

Ответ 5

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

Ответ 6

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

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

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