Как мне преобразовать git-репозиторий в Mercurial? - PullRequest
104 голосов
/ 29 января 2009

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

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

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

Ответы [ 9 ]

78 голосов
/ 29 января 2009

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

[extensions]
hgext.convert=

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

41 голосов
/ 29 января 2009

Используя расширение 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

17 голосов
/ 11 июня 2010

Возможно, вы захотите взглянуть на утилиту http://hg -git.github.com / : плагин Git для Mercurial

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

9 голосов
/ 29 января 2009

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

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

  • 1009 * Subversion *
  • CVS
  • Гит
  • Darcs

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

6 голосов
/ 26 февраля 2009

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

2 голосов
/ 13 ноября 2012

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

Просто:

hg init ../hgrepo
git push hg::$PWD/../hgrepo
2 голосов
/ 27 апреля 2010

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

1 голос
/ 07 июня 2016

В папке 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"
0 голосов
/ 11 марта 2015

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

...