Як перетворити сховище git в обмірну?


104

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

Моє запитання - як перетворити сховище git в hg?

Якщо я спробував googling "перетворити git в hg", і кожен хіт пошуку - це перетворення з hg в git. Я також використовую TortoiseHg .


16
Якщо вам потрібно конвертувати з ртутного мерзотник замість: stackoverflow.com/questions/883452 / ...
Christian Oudard

Цей останній абзац не має сенсу. Опечатка?
thepang

1
@Theheng: Я хотів "git -> hg", але отримав "hg -> git". Я відредагую це питання, але, мабуть, люди все одно отримали його, оскільки зараз є відповіді.
Спойк

Відповіді:


79

hg convertУтиліта не включена за замовчуванням після установки. Для того, щоб встановити його як такого, додайте у .hgrcфайл наступне .

[extensions]
hgext.convert=

Якщо ви використовуєте TortoiseHg в Windows, то цей файл знаходиться у вашому домашньому каталозі як mercurial.ini. Після зміни цієї настройки ви зможете користуватися hg convertутилітою.


5
У Ubuntu зміни в системі можуть бути внесені в / etc / mercurial / hgrc
Sentient

1
У Windows, використовуючи TortoiseHg, його можна ввімкнути, скориставшись пунктом меню "Глобальні настройки" з меню розширення оболонки TortoiseHg в розділі "Розширення" в розділі "Глобальні налаштування".
Umar Farooq Khawaja

Опис дещо неповний, оскільки не вказує, що hg знадобиться доступ до git для перетворення, інакше ви отримаєте помилку "не можете знайти потрібний інструмент" git ".
jmd

41

За допомогою розширення 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


Якби ця відповідь включала .hgrcналаштування замість посилання на нього, вона була б всеосяжною.
fbmd

17

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

Цей плагін спочатку розроблений хлопцями GitHub і дозволяє без перешкод перетворити з git <-> меркуріальну втрату. Теоретично, ви навіть могли б клонувати сховище hg.


2
Це краще рішення, ніж перетворення сховища. Було б і кращою відповіддю, якби вона мала детальніше. Відповіді в одному рядку поруч із марними.
naught101

1
@ naught101, дякую за пропозицію, я тут додав ще трохи інформації для прямого читання.
vdboor

після встановлення та налаштування hg-git використовуйте hg gexport & hg gimport для перетворення між ними.
CAD блокується


6

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


2

Ви просто не могли перетворити його взагалі. Просто використовуйте плагін Hg-Git ! Ніхто не дізнається різниці.


2

Новий гравець у місті: git-remote-hg . Він надає нативну підтримку мосту в git.

Просто:

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

1

У 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

Hg-Git Plugin або якщо ви його використовуєте для Windows або переходу з одного на інший, відвідайте тут 2 [Windows GIT]

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.