web-dev-qa-db-fra.com

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. J'aimerais partager le projet avec d'autres développeurs Java et hg semble être le plus utilisé par eux. 

Ma question est la suivante: comment convertir un référentiel git en hg?

Si j'ai essayé googler "convertir git en hg" et que chaque recherche a pour but de convertir hg en git J'utilise aussi TortoiseHg .

104
Spoike

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

[extensions]
hgext.convert=

Si vous utilisez TortoiseHg sous Windows, ce fichier se trouve dans votre répertoire personnel sous le nom Mercurial.ini. Une fois ce paramètre modifié, vous pourrez utiliser l'utilitaire hg convert.

78
Spoike

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îne certains problèmes ...)

Note :: metrix indique que cela pourrait ne pas fonctionner:

     hg convert --datesort src dst

Remarque: il existe un bogue 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 sur Windows XP

41
VonC

Vous voudrez peut-être consulter 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 la conversion de git <-> Mercurial sans perte. En théorie, vous pourriez même être en mesure de cloner le dépôt hg.

17
vdboor

Contrôle de révision distribué avec Mercurial États:

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

  • Subversion
  • CVS
  • Git
  • Darcs

Alors peut-être n'avez-vous pas besoin d'un outil supplémentaire?

9
Bombe

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 GDS distribués.

6
Luke Francl

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
2
FelipeC

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

2
Jay Atkinson

Dans le dossier Git avec tous mes référentiels 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 référentiel Git en Hg en tapant ceci dans un CMD:

Git2Hg "Folder Name"
1
stenci

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

0
dilshad