Comment convertir un référentiel git en mercurial?

J’ai développé une application Java en utilisant git comme référentiel de code source. Je voudrais 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 repository git en hg?

Si j’ai essayé de googler “convertir git en hg” et que chaque recherche porte sur la conversion de hg en git. J’utilise aussi TortoiseHg .

L’utilitaire de hg convert n’est pas activé par défaut après l’installation. Pour le définir comme tel, ajoutez ce qui suit à votre fichier .hgrc .

 [extensions] hgext.convert= 

Si vous utilisez TortoiseHg sous Windows, ce fichier réside dans votre répertoire personnel en tant que mercurial.ini . Après ce changement de paramètre, vous pourrez utiliser l’utilitaire de hg convert .

En utilisant l’ extension Mercurial Convert

Ajoutez les lignes suivantes à votre .hgrc ou 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: mesortingx signale que cela pourrait ne pas fonctionner:

  hg convert --datesort src dst 

Note: il y a un bug avec hg convert si 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

Vous voudrez peut-être regarder l’utilitaire http://hg-git.github.com/ : un plugin Git pour Mercurial

Ce plugin est à l’origine développé par les gars de GitHub, et permet aux convertis de git < -> mercurial sans perte. En théorie, vous pouvez même cloner le repository hg.

Contrôle de révision dissortingbué avec les états Mercurial :

Les outils de contrôle de révision pris en charge par convert sont les suivants:

  • Subversion
  • CVS
  • Git
  • Darcs

Alors peut-être n’avez-vous besoin d’aucun outil supplémentaire?

L’extension de conversion peut fonctionner pour vous, mais si ce n’est pas le cas, vous pourriez vouloir vérifier sur mesure qui est un outil général de conversion entre les différents SCM dissortingbués.

Vous pourriez simplement ne pas le convertir du tout. Il suffit d’utiliser le plugin Hg-Git ! Personne ne saura la différence.

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 

Dans le dossier Git avec tous mes repositorys Git, j’ai créé le fichier Git2Hg.cmd 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 repository Git en Hg en le saisissant dans un CMD:

 Git2Hg "Folder Name" 

Hg-Git Plugin ou si vous utilisez pour Windows ou la migration d’une visite à une autre ici 2 [Windows GIT]