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 .
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
.
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
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.
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?
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.
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
Vous pourriez simplement ne pas le convertir du tout. Il suffit d’utiliser le plugin Hg-Git ! Personne ne saura la différence.
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"
Hg-Git Plugin ou si vous utilisez Windows ou la migration d’une visite à l’autre ici 2 [Windows GIT]