Je n'ai pas une grande expérience avec Mercurial, je suis surtout un gars Git.
J'adorerais mettre en miroir un dossier / fichier Mercurial spécifique dans un référentiel git. Ce que j'essaie en fait de faire, c'est d'exporter l'historique d'un fichier d'un référentiel Mercurial vers Git et de pouvoir le garder synchronisé avec les futurs commits.
Avez-vous des suggestions sur la façon de procéder? Je pense que la voie à suivre devrait être d'obtenir l'historique du correctif Mercurial, d'exporter périodiquement chaque commit sous forme de correctif et d'appliquer les correctifs Mercurial au référentiel Git.
Réponses:
Sur Linux ou tout autre avec
bash/sh
ou similaire, oupython
, essayez avec l' exportation rapide :la source
PYTHON=python2 ~/fast-export/hg-fast-export.sh -r /path/to/old/mercurial_repo
. En dehors de cela, cela a fonctionné parfaitement.sudo easy_install mercurial
abord. Ce serait bien d'avoir dans les instructionsWindows: extension TortoiseHG Hg-Git
Hg-Git peut être utilisé pour convertir un référentiel Mercurial en Git. Vous pouvez utiliser un référentiel local ou un référentiel distant accessible via SSH, HTTP ou HTTPS.
Exemple de conversion de référentiels locaux.
Installez Hg-Git.
Sous Windows, TortoiseHg est livré avec Hg-Git, mais vous devez l' activer via l'outil de configuration (dans la section extensions)
ou manuellement dans
~/mercurial.ini
Utilisez les commandes suivantes pour convertir le référentiel:
Le
hg
signet est nécessaire pour éviter les problèmes, sinon hg-git pousse vers la branche actuellement extraite, ce qui confond Git. Cela créera une branche nomméehg
dans le référentiel Git. Pour obtenir les modifications dans master, utilisez les commandes suivantes (uniquement nécessaire lors de la première exécution, puis utilisez simplementgit merge
ourebase
):la source
Vous pouvez (du côté Mercurial):
--filemap
option convertir une partie du dépôt d'origine en plus petit avec uniquement les fichiers nécessaires | répertoiresou (au lieu de hg-git), en utilisant le pont Mercurial dans Git , cloner | extraire le dépôt de Git
la source
Gitify
Semble être une alternative plus moderne et facile à utiliser pour effectuer la conversion https://github.com/buchuki/gitifyhg
la source
Convertir un référentiel Mercurial en Git sur Windows 10
Si aucun problème d'encodage - utilisez l'extension TortoiseHG Hg-Git
Si quelque chose ne va pas avec l'encodage - utilisez l'exportation rapide
Installer Bash
Ouvrez PowerShell en tant qu'administrateur et exécutez:
Installez Ubuntu 16.04 LTS à partir du Microsoft Store
Ouvrez Bash et exécutez
installer mercurial
get fast-export v180317 (pour le moment, les versions après 180317 ne fonctionnent pas correctement)
convertir le référentiel
options d'encodage:
-f
encodage, comme-f cp1251
--fe
encodage de nom de fichier comme--fe cp1251
la source
importation rapide hg-git
https://github.com/kilork/hg-git-fast-import
Un autre utilitaire avec les fonctionnalités suivantes:
Vous pouvez télécharger le binaire pour votre plate - forme et le placer quelque part dans le chemin ou installer avec
cargo
(doitrust
être installé ):Alors l'utilisation est comme ceci:
Il n'a pas besoin
Python
etMercurial
à installer. La configuration avancée permet de remplacer les auteurs ou les branches, de créer des branches préfixées et plus encore.la source
Si vous utilisez github.com , ils semblent avoir une fonction d'importation qui vous permet de taper simplement l'URL de votre projet hg.
Créez d' abord un nouveau référentiel puis sur la page de destination du nouveau référentiel, faites défiler vers le bas et cliquez sur le bouton "Importer le code" .
Tapez ensuite l' URL de votre dépôt précédent et cliquez sur "Commencer l'importation".
Ensuite, GitHub s'occupe du reste!
Notez que GitHub vous demandera vos informations d'identification pour l'ancien référentiel s'il en a besoin.
Ooh! J'ai trouvé le guide officiel
la source
Sous Windows, cela peut être un peu délicat. Après avoir activé les bons plugins dans mercurial (
hggit
), TortoiseHG peut également être utilisé.Utilisation de la console:
% hg bookmarks hg
% hg push <relative path to>/<git-repo>
la source
Peut-être que cela aide quelqu'un aujourd'hui (lors de la conversion d'un référentiel mercurial en git, tout en conservant l'historique). Testé pour fonctionner avec mercurial 4.0.1.
Et enfin pour pousser votre repo local nouvellement converti.
la source