Y at-il un flux de travail efficace pour refléter un projet qui est principalement hébergé sur bitbucket en utilisant Hg, à Github?Reflétant un projet HG de Bitbucket à Github
Répondre
Vous pouvez utiliser un outil comme hg-git
à:
- installer un dépôt Git quelque part que vous avez accès à pousser,
- puis exécutez
hg push [path]
à partir de votre projet. Par exemple:
$ cd hg-git # (a Mercurial repository)
$ hg bookmark -r default master # make a bookmark of master for default, so a ref gets created
$ hg push git+ssh://[email protected]/schacon/hg-git.git
$ hg push
Cela convertira toutes nos données Mercurial en objets Git et poussez-les au serveur Git.
Vous pouvez aussi mettre ce chemin dans la section[paths]
de.hg/hgrc
puis pousser à par son nom.
Merci. J'ai jeté un coup d'œil à hg-git, mais je vois qu'il est encore dans un état alpha. J'ai essayé de l'installer dans cygwin mais j'ai un problème de stabilité avec ça en ce moment. Pourvu que cela fonctionne, cependant, c'est certainement un outil utile dans le flux de travail. – Santa
Si vous utilisez Mercurial pour un projet, vous pouvez rapidement et facilement un miroir git de votre projet afin que les utilisateurs peuvent contribuer git. J'ai créé un tutoriel sur l'utilisation de hg-git
pour gérer les miroirs Mercurial sur GitHub.
Il couvre comment démarrer avec un compte GitHub, comment faire passer un projet de Mercurial à GitHub, et comment accepter des contributions (demandes de pull) de GitHub. Voici un lien vers l'article du blog: http://hgtip.com/tips/advanced/2009-11-09-create-a-git-mirror/
Depuis juillet 2013, il existe BitSyncHub un service Web pour automatiser ce processus via un hook BitBucket post-réception. Vous devrez accorder le service autorisation d'écriture à votre dépôt GitHub bien (ajouter bitsynchub en tant que contributeur).
Une solution plus disponible pour convertir rapidement: https://github.com/frej/fast-export
Ajouter git-remote-hg à votre chemin bin. Alors vous pouvez refléter comme mentioned on github.
git clone --mirror hg::https://bitbucket_repo
puis, allez dans votre repo
git remote set-url --push origin https://github.com/exampleuser/mirrored
cloné enfin, synchroniser votre miroir
git fetch -p origin
git push --mirror
C'est beaucoup mieux que la réponse acceptée car le résultat sera un vrai miroir avec tous les tags et branches. – Kentzo
Voir aussi http://stackoverflow.com/questions/883452/git-interoperability- avec-un-mercurial-référentiel – wimh