2009-01-05 5 views
7

In den letzten 6 Monaten habe ich einen 2-Wege-Git-Spiegel unseres Perforce-Hauptlagers bei der Arbeit verwendet, um ihn für unseren Workflow zu evaluieren. Ich muss sagen, dass ich mich in die Verwendung verliebt habe, aber es hatte bisher einen fatalen Fehler: Es ist Windows-Unterstützung ist schrecklich.Wie kann ich eine 2-Wege-Spiegelung eines Git-Repository mit einem anderen SCM bereitstellen? (bzr, hg etc)

Im Allgemeinen ist dies kein Problem für mich, aber gerade jetzt ist es. Ich muss etwas Arbeit an einigen lokal engagierten Arbeiten in meinem Git Repo erledigen, und ich kann nicht von der Maschine aus arbeiten, an der ich arbeiten muss, da es einige unlösbare Probleme mit der Git-Distribution in dieser Box gibt.

Wie auch immer, was ich tun möchte, wenn ich kann, ist, einen zweiten Spiegel zu laufen: diesmal Piggy-Backing von meinem Git Repository, aber Serving über Mercurial oder Bazar. Ich habe ein paar Werkzeuge gefunden, die vielversprechend aussehen und einige Referenzen in Blogkommentaren, die besagen, dass Leute dies getan haben, aber nichts komplett.

Also kann mir jemand sagen, ob es eine einfache Möglichkeit ist es, einen 2-Wege-Spiegel zu einer Git-Repository unter Verwendung eines anderen DVCS zu behaupten, dass wird Arbeit unter Windows ohne Probleme?

Vielen Dank im Voraus für Ihre Mühen ...

Jamie

Antwort

6

Eine neue Option ist bei den Leuten von GitHub aufgetaucht: git-hg. Jetzt gibt es eine Möglichkeit, eine Zwei-Wege-Synchronisierung zwischen Git und Mercurial zu machen.

0

Mercurial hat wahrscheinlich die beste Unterstützung für Windows (aus git & BZR). Es hat sogar eine TortoiseHg-Erweiterung here.

+0

Mercurial ist mein bevorzugter Spiegel, aber die Frage ist, wie man einen 2-Wege-Git/Mercurial-Spiegel erstellen ... wenn Sie wissen, bitte sagen Sie es! Txs. – jkp

3

Ich weiß, dass Mercurial eine Erweiterung hat, mit der Sie von git zu mercurial konvertieren können. Mehr auf https://www.mercurial-scm.org/wiki/ConvertExtension

Ich habe es selbst nicht verwendet.

+1

Ich habe es gestern Abend gemacht: Es konvertiert den Verlauf von Git nicht auf eine brauchbare Art und Weise, es vereinigt alle Zweige in den Standardzweig, da Git Zweige intern behandelt. Ich brauche etwas, mit dem ich einen vernünftigen Zwei-Wege-Spiegel machen kann. – jkp

+0

Punkte gehen hier, da es die einzige Antwort ist, die tatsächlich die Frage anspricht, die ich fragte! Andere mögen auch gerne "Taylor" nachschlagen, was auch helfen kann ... – jkp

+0

Convert ist streng in eine Richtung. Es ist nicht das Synchronisierungswerkzeug, nach dem er sucht. –

3

[wikified da diese nicht wirklich eine Antwort ist]

Ich verwende MSYS git ohne Probleme auf Vista. Ich hasse meine git Repos aber auf einer Debian GNU/Linux Box.

+0

Das Problem, das ich mit Git unter Windows habe, ist mit der Windows-Box zu tun, die ich benutze: Es ist eine 64-Bit-Windows-2008-Installation, die auf einem KVM-Linux-Host als VM läuft. Ich habe sowohl Msys Git und Cygwin versucht: • Msys funktioniert nicht unter Windows 2008 64bit (bekannt) • Cygwin macht Fehler in KVM. Wenn ich könnte ich würde! – jkp

+0

Nun, für alle Interessierten fand ich * endlich * eine Lösung für das Problem, das ich mit msys Git hatte: Siehe [hier für Details] [1] [1]: http://code.google.com/p/msysgit/issues/detail? id = 122 & colspec = ID% 20Typ% 20Status% 20Priorität% 20Komponente% 20Owner% 20Zusammenfassung – jkp

+0

Wow! Was für ein Schmerz. Herzlichen Glückwunsch für die Suche nach einer Lösung! –

0

Ich denke, dass Sie mit dem derzeit verfügbaren Git zu anderen DVCS-Synchronisierungstools wahrscheinlich keine befriedigende Lösung finden werden. Sie könnten wahrscheinlich ein funktionierendes System zusammensetzen, indem Sie git-svn verwenden, um von subversion zu gelangen und hgsubversion, um zwischen mercurial und subversion zu synchronisieren, aber das scheint wie ein verrückter Klud, nur um schwache git Unterstützung auf Windows zu umgehen.

Vielleicht wäre es besser, per E-Mail Diffs aus der Windows-Box zu versenden - git verfügt über eine ausgezeichnete E-Mail-Patch-Handhabung (wie auch Mercurial).

1

Es gibt auch tailor, die zwischen mehreren Repositories Spiegelung ermöglicht. Ich hatte es mit ziemlichem Erfolg bei Cygwin zu tun - bis jemand Dateien hinzufügte, die die Befehlszeile svn choke machten; obwohl das ein ziemlich seltenes Problem sein könnte.