Як перетворити сховище 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.