Ein Git-Repo und ein Mercurial im selben Verzeichnis haben

11

Ich erkläre mein Problem,

Ich verwende derzeit eine interne Installation von gitorious using git. Ich möchte anfangen, FogBugz und Kiln von Fog Creek zu testen, die Quecksilber verwenden. Ich möchte zumindest für kurze Zeit die Entwicklung mit beiden Lösungen fortsetzen.

Kennt jemand irgendwelche langfristigen schwerwiegenden Auswirkungen, wenn ein Git und ein Quecksilber-Repo im selben Verzeichnis sind? Oder gibt es eine bessere Möglichkeit, Git und Mercurial Server synchron zu halten?

Ich habe es mit einem Test-Repo versucht und ich habe keine Probleme gesehen.

Vielen Dank für jede Hilfe.

D. Mathis
quelle
1
Ich glaube nicht, dass es ein großes Problem geben würde, da beide im Gegensatz zu svns .svnDateien isoliert sind .
Josh K

Antworten:

8

Ich habe festgestellt, dass die hg-git-Brücke in die andere Richtung ziemlich brauchbar ist (einige Dinge auf Github enthüllen, die ursprünglich mit Mercurial für die Quellcodeverwaltung erstellt wurden). Grundsätzlich verwenden Sie "nur" mercurial, erstellen ein Lesezeichen, das "master" mit "default" verknüpft, wenn Sie bereit sind, auf ein Git-Repo zu pushen, und pushen. Pull from Git funktioniert ähnlich wie beim Ziehen von einem Remote-Repo. In diesem Szenario erhalten Sie keine .git + .hg-Dateien, sondern nur Quecksilberdateien auf Ihrer lokalen Box, es sei denn, Sie migrieren vollständig zu git. In diesem Fall würden Sie wahrscheinlich git in einem neuen Klon erstellen Verzeichnis.

Es gibt ein ähnliches Projekt für Git-Benutzer, die aus Mercurial-Repositories pushen / ziehen möchten, aber ich habe keine direkte Erfahrung damit. Siehe https://github.com/offbytwo/git-hg

Abgesehen von der Möglichkeit, versehentlich einige der versteckten Ordner Ihres "anderen" Versionsverwaltungssystems einzuchecken, sehe ich kein wirkliches Problem damit, hg init in einem Git-Repo auszuführen. Es scheint mir nur weniger umständlich, eine Brücke zu verwenden und explizit zu wählen, wann auf das andere DVD-System umgeschaltet werden soll.

JasonTrue
quelle
Ich habe festgestellt, dass hg-git mit SSH ein bisschen ein Hit & Miss ist, und es macht weniger Spaß, es einzurichten. Sie können beide DVCS-Clients auf demselben Computer ausführen, ohne Probleme. Wenn Sie eine für die Quellcodeverwaltung und die andere für die Push-Produktion verwenden (Azure, Appharbor usw.), kann dies gut funktionieren.
CAD Kerl
Schauen Sie sich den Ordner .hg an. hg-git erstellt dort einen .git-Ordner, es sei denn, Sie geben [git] intree = true in Ihrer .hgrc / ini-Datei für mercurial an.
CAD Kerl
9

Ich habe sowohl mercurial als auch git für dasselbe Projekt im selben Arbeitsverzeichnis verwendet. Das Tolle an der Verwendung dieser beiden DVCS ist, dass beide nur einen Ordner (.git / .hg) für ihre Confs und Blobs und Bäume und so weiter haben.

Geben Sie einfach .hg in .gitignore (und .git in .hgignore) ein und Sie können loslegen.

Sie müssen natürlich die Arbeit verdoppeln, wenn Sie sich verpflichten, aber ich fand das nicht schwer zu handhaben.

Dieses Setup ist meiner Meinung nach weitaus zuverlässiger als die Verwendung von Bridge-Lösungen (ich mag sie seit dem Horror, den ich mit git-svn hatte, nicht mehr).

Vladaimir Cetkovic
quelle
Können Sie weitere Informationen darüber geben, wie Sie dies erreicht haben? Ich habe hier eine Frage stackoverflow.com/questions/14486600/…, die anscheinend von Ihnen erreicht wurde. Jede Hilfe wird geschätzt :)
Akdsouza