Как преобразовать репозиторий git в mercurial?

Я разрабатываю Java-приложение, используя git в качестве репозитория исходного кода. Я хотел бы поделиться проектом с другими разработчиками java, и hg, похоже, больше всего ими пользуются.

Мой вопрос в том, как преобразовать репозиторий git в hg?

Если я попробовал googling "конвертировать git в hg", и каждый поиск попадает на конвертацию с hg на git. Я также использую TortoiseHg.

Ответ 1

Утилита hg convert не включена по умолчанию после установки. Чтобы установить его как таковой, добавьте следующее в ваш файл .hgrc.

[extensions]
hgext.convert=

Если вы используете TortoiseHg в Windows, этот файл находится в вашем домашнем каталоге как mercurial.ini. После этого изменения вы сможете использовать утилиту hg convert.

Ответ 2

Используя расширение Mercurial Convert

Добавьте следующие строки в .hgrc или включите расширение:

[extensions]
hgext.convert=

И набрав

cd src
hg convert --datesort . dst

(даже если он может привести к некоторым проблемам...)

Примечание:: metrix сообщает, что это может не сработать:

     hg convert --datesort src dst

Примечание., если вы выполняете эту команду из каталога, отличного от исходного каталога, появляется ошибка с hg convert.
Вы получите следующую ошибку:

abort: cannot read tags from git-repo4/.git

Подтверждено с помощью git 1.7.9 и Mercurial 2.6.2 в Windows XP

Ответ 3

Вам может понадобиться утилита http://hg-git.github.com/: плагин Git для Mercurial

Этот плагин первоначально разработан парнями GitHub и позволяет конвертировать из git ↔ mercurial без потерь. Теоретически вы можете даже клонировать hg-репозиторий.

Ответ 4

Распределенный контроль версий с Mercurial:

Поддерживаются инструменты контроля версий путем преобразования:

  • Subversion
  • CVS
  • Git
  • Darcs

Так что, возможно, вам не нужен какой-либо дополнительный инструмент?

Ответ 5

Расширение конвертации может работать для вас, но если это не так, вы можете проверить tailor, который является общим предназначенный для преобразования между различными распределенными SCM.

Ответ 6

Вы можете просто не преобразовать его вообще. Просто используйте Hg-Git плагин! Никто не узнает разницу.

Ответ 7

Новый игрок в городе: git-remote-hg. Он обеспечивает поддержку встроенного моста в git.

Просто:

hg init ../hgrepo
git push hg::$PWD/../hgrepo

Ответ 8

В папке Git со всеми моими репозиториями Git я создал файл Git2Hg.cmd со следующим содержимым:

set PATH=%PATH%;C:\Program Files\TortoiseHg
set PATH=%PATH%;C:\Program Files\Git\bin
hg convert %1

Теперь я могу преобразовать репозиторий Git в Hg, введя его в CMD:

Git2Hg "Folder Name"

Ответ 9

Hg- Git Плагин, или если вы используете для Windows или переходите от одного к другому, посетите 2 [Windows GIT ]