Comment convertir un dépôt git en mercurial?


104

J'ai développé une application java en utilisant git comme référentiel de code source. J'aimerais partager le projet avec d'autres développeurs java et hg semble être le plus utilisé par eux.

Ma question est de savoir comment convertir un dépôt git en hg?

Si j'ai essayé de googler "convertir git en hg" et que chaque résultat de recherche concerne la conversion de hg en git. J'utilise également TortoiseHg .


16
Si vous avez besoin de convertir de mercurial en git à la place: stackoverflow.com/questions/883452/...
Christian Oudard

Ce dernier paragraphe n'a pas de sens. Une faute de frappe?
tshepang

1
@Tshepang: Je voulais "git -> hg" mais j'ai obtenu "hg -> git". Je vais éditer cette question mais je suppose que les gens l'ont quand même car il y a des réponses maintenant.
Spoike

Réponses:


79

L' hg convertutilitaire n'est pas activé par défaut après l'installation. Afin de le définir comme tel, ajoutez ce qui suit à votre .hgrcfichier.

[extensions]
hgext.convert=

Si vous utilisez TortoiseHg sous Windows, ce fichier réside dans votre répertoire personnel sous le nom mercurial.ini. Après ce changement de paramètre, vous pourrez utiliser l' hg convertutilitaire.


5
Sur Ubuntu, le changement à l'échelle du système peut être effectué dans / etc / mercurial / hgrc
Sentient

1
Sous Windows, en utilisant TortoiseHg, il peut être activé en utilisant l'élément de menu Paramètres globaux du menu d'extension du shell TortoiseHg dans la section Extensions sous Paramètres globaux.
Umar Farooq Khawaja

La description est quelque peu incomplète car elle ne spécifie pas que hg aura besoin d'accéder à git pour la conversion ou bien vous obtenez l'erreur "Impossible de trouver l'outil" git "requis".
jmd

41

En utilisant l' extension Mercurial Convert

Ajoutez les lignes suivantes à votre .hgrcou pour activer l'extension:

[extensions]
hgext.convert=

Et en tapant un

cd src
hg convert --datesort . dst

(même si cela peut entraîner des problèmes ...)

Remarque :: metrix signale que cela pourrait ne pas fonctionner:

     hg convert --datesort src dst

Remarque: il se trouve qu'il y a un bogue avec hg convertsi vous exécutez cette commande à partir d'un répertoire autre que le répertoire source.
Vous obtiendrez l'erreur suivante:

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

Confirmé avec git 1.7.9 et Mercurial 2.6.2 sous Windows XP


Si cette réponse incluait la .hgrcconfiguration au lieu d'un lien vers elle, elle serait complète.
fbmd

17

Vous pouvez consulter l' utilitaire http://hg-git.github.com/ : un plugin Git pour Mercurial

Ce plugin a été développé à l'origine par les gars de GitHub, et permet la conversion depuis git <-> mercurial sans perte. En théorie, vous pourriez même être en mesure de cloner le référentiel hg.


2
C'est une meilleure solution que la conversion du référentiel. Ce serait aussi une meilleure réponse, si elle avait plus de détails. Les réponses d'une seule ligne sont presque inutiles.
naught101

1
@ naught101, merci pour la suggestion, j'ai ajouté quelques informations supplémentaires ici à lire directement.
vdboor

après avoir installé et configuré hg-git, utilisez hg gexport et hg gimport pour convertir entre eux.
Bloke CAD


6

L'extension de conversion peut fonctionner pour vous, mais si ce n'est pas le cas, vous voudrez peut-être consulter tailor qui est un outil général pour la conversion entre les différents SCM distribués.


2

Vous ne pourriez tout simplement pas le convertir. Utilisez simplement le plugin Hg-Git ! Personne ne saura la différence.


2

Nouveau joueur en ville: git-remote-hg . Il fournit un support de pontage natif dans git.

Juste:

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

1

Dans le Gitdossier avec tous mes dépôts Git, j'ai créé le Git2Hg.cmdfichier avec le contenu suivant:

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

Maintenant, je peux convertir un référentiel Git en Hg en tapant ceci dans un CMD:

Git2Hg "Folder Name"

0

Plugin Hg-Git ou si vous utilisez pour Windows ou la migration de l'un à l'autre visitez ici 2 [Windows GIT]

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.