Avoir un dépôt Git et mercurial dans le même répertoire


11

Je vais expliquer mon problème,

J'utilise actuellement une installation interne de gitorious en utilisant git. Je voudrais commencer à tester FogBugz et Kiln de Fog Creek qui utilise du mercure. Je voudrais au moins un court instant continuer le développement en utilisant les deux solutions.

Quelqu'un connaît-il des effets graves à long terme d'avoir un git et un repo mercurial dans le même répertoire? Ou existe-t-il un meilleur moyen de synchroniser git et mercurial server.

Je l'ai essayé avec un repo de test et je n'ai vu aucun problème.

Merci pour toute aide.


1
Je ne pense pas qu'il y aurait beaucoup de problème, car ils sont tous les deux isolés contrairement aux .svnfichiers de svn .
Josh K

Réponses:


8

J'ai trouvé le pont hg-git assez utilisable dans l'autre sens (exposant certaines choses sur Github qui a été initialement construit en utilisant Mercurial pour le contrôle de source). Fondamentalement, vous utilisez "simplement" mercurial, créez un signet reliant "master" à "default" lorsque vous êtes prêt à passer à un dépôt git, et à pousser. Pull from git fonctionne de la même manière que lorsque vous tirez d'un dépôt distant. Vous ne vous retrouvez pas avec des fichiers .git + .hg dans ce scénario, vous avez juste des fichiers mercuriels sur votre boîte locale, à moins que vous finissiez par migrer vers git entièrement, auquel cas vous feriez probablement git clone dans un nouveau annuaire.

Il existe un projet similaire pour les utilisateurs de git qui veulent pousser / tirer des référentiels Mercurial, mais je n'ai pas d'expérience directe avec lui. Voir https://github.com/offbytwo/git-hg

Mis à part le potentiel de vérifier accidentellement un tas de dossiers cachés de votre "autre" système de contrôle de source, je ne vois aucun problème réel à faire hg init dans un dépôt git; il me semble juste moins maladroit d'utiliser un pont et de choisir explicitement quand pousser vers l'autre système dvcs.


J'ai trouvé hg-git un peu hasardeux avec SSH et c'est moins qu'amusant à configurer. Vous pouvez exécuter les deux clients DVCS sur la même machine, sans problème. En fait, si vous utilisez l'un pour le contrôle de code source et l'autre pour passer à la production (Azure, Appharbor, etc.), cela peut bien fonctionner.
CAD bloke

jetez un œil sous le dossier .hg. hg-git y crée un dossier .git, sauf si vous spécifiez [git] intree = true dans votre fichier .hgrc / ini pour mercurial.
CAD bloke

9

J'ai utilisé à la fois mercurial et git sur le même projet, dans le même répertoire de travail. La grande chose à propos de l'utilisation de ces deux DVCS est qu'ils n'ont tous les deux qu'un seul dossier (.git / .hg) pour leurs confs et blobs et leurs arbres et autres.

Mettez simplement .hg dans .gitignore (et .git dans .hgignore) et vous êtes plus que prêt à partir.

Bien sûr, vous devez doubler le travail lorsque vous vous engagez, mais je n'ai pas trouvé cela difficile à gérer.

À mon avis, cette configuration est beaucoup plus fiable que l'utilisation de solutions de pont (je ne les aime pas depuis l'horreur que j'ai eue avec git-svn).


Pouvez-vous donner plus d'informations sur la façon dont vous avez réalisé cela? J'ai une question ici stackoverflow.com/questions/14486600/… qui semble avoir été réalisée par vous. Toute aide est appréciée :)
akdsouza
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.