144 votes

Convertir un dossier Mercurial en dépôt Git

Je n'ai pas une grande expérience de Mercurial, je suis surtout un gars de Git.

J'aimerais mettre en miroir un dossier/fichier Mercurial spécifique dans un dépôt git. Ce que j'essaie de faire, c'est d'exporter l'historique d'un fichier d'un dépôt Mercurial vers Git et d'être capable de le garder en synchronisation avec les futurs commits.

Avez-vous une suggestion sur la façon de procéder ? Je pense que la façon de procéder devrait être d'obtenir l'historique du patch Mercurial, d'exporter périodiquement chaque commit en tant que patch et d'appliquer les patchs Mercurial au dépôt Git.

1 votes

De nos jours, GitHub.com va l'importer pour vous .

0 votes

Voir aussi : une bonne présentation sur git-scm.com : git-scm.com/book/fr/v2/

3voto

Hg-git-fast-import

https://github.com/kilork/hg-git-fast-import

Un autre utilitaire avec les caractéristiques suivantes :

  1. Importation de dépôts Mercurial simples et multiples vers un dépôt Git.
  2. Importation des nouvelles révisions des dépôts Mercurial précédemment importés vers le dépôt Git.
  3. Tags.
  4. Branches fermées.
  5. Vérification du résultat final avec diff.

Vous pouvez télécharger le binaire pour vous plateforme et mettre quelque part dans le chemin ou installer avec cargo (exiger rust à être installé ) :

cargo install hg-git-fast-import

Alors l'usage est comme ça :

hg-git-fast-import single /path/to/source_hg /path/to/target_git

Il n'a pas besoin Python et Mercurial à installer. La configuration avancée permet de remplacer les auteurs ou les branches, de rendre les branches préfixées et plus encore.

2voto

glyphobet Points 786

J'ai écrit exactement comment faire ça ici : Pousser vers GitHub en utilisant Mercurial . J'utilise cette technique pour pousser plusieurs dépôts Mercurial vers GitHub depuis plus d'un an, sans aucun problème.

1voto

Brad Turek Points 768

Si vous utilisez github.com ils semblent avoir une fonction d'importation qui vous permet de taper simplement l'URL de votre projet hg.

Premier créer un nouveau référentiel puis, sur la page de destination du nouveau dépôt, faites défiler jusqu'en bas et cliquez sur l'icône "Bouton "Importer le code .

context for the import code button

Ensuite, tapez le URL de votre référentiel précédent et cliquez sur "Commencer l'importation".

context for "Begin import" button

Ensuite, GitHub s'occupe du reste !

Github taking care of business for you

Notez que GitHub vous demandera vos informations d'identification pour l'ancien dépôt s'il en a besoin.

Ooh ! J'ai trouvé le guide officiel

1voto

slk Points 21

Peut-être que cela aidera quelqu'un aujourd'hui (lors de la conversion d'un dépôt mercurial en git, tout en conservant l'historique). Testé pour fonctionner avec mercurial 4.0.1.

~$ git clone https://*old_hg_repo*
~$ git clone https://github.com/frej/fast-export.git
~$ cd fast-export
~$ git checkout tags/v180317
~$ cd ..
~$ mkdir new_git_repo
~$ cd new_git_repo
~$ git init
~$ .../fast-export/hg-fast-export.sh -r ../old_hg_repo/ --force
~$ git checkout HEAD

Et enfin de pousser votre repo local nouvellement converti.

~$ git push REMOTE '*:*'

0voto

Ofer Helman Points 83

Utilisez four

  1. Créer un harmonie dépôt
  2. Poussez votre code vers le référentiel
  3. Dans le coin supérieur droit, il est écrit mercuriel enter image description here changer pour git
  4. clonez votre dépôt

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X