git submodule– Der Jailbrake Versuch

Ich habe schon seit einiger Zeit gitflow auf dem Radar. Leider konnte ich dafür aber noch keine Zeit verschwenden, es mir mal anzuschauen, geschweige denn auszuprobieren. Gestern bin ich bei der Suche nach etwas völlig anderem wieder darüber gestolper. Als ich dann kurz vor einem Meeting noch 15 Minuten Zeit hatte war es dann soweit. Jetzt versuchst du es schnell zu installieren. In der kurzen Zeit kannst du sowieso kein Thema mehr sinnvoll anfangen. Auf gings gitflow unter msysgit zu installieren.

Dabei bin bin dann gleich erst einmal daran gescheitert, das ich in meiner Firma hinter dem Proxy nicht über das git:// Protokoll klonen kann, da der Port gesperrt ist. D.h. alle URLs die per git:// abgerufen werden funktionieren nicht. Das an sich ist kein Problem, da ich bei github für diesen Zweck auch das klonen über http:// durchführen kann. Mein eigentliches Problem ist das klonen der Submodule in dem Projekt gewesen.

$ git clone --recursive git://github.com/nvie/gitflow.git

schlug dabei gnadenlos fehl. Da ich zuvor mit Submodulen nichts zu tun hatte. War ich erst einmal ratlos was zu tun ist. Der erste Versuch von mir war es, über socat und git config --global core.gitproxy den port zu tunneln, was aber leider auch nicht funktioniert hatte. Da ich aber keine Zeit hatte den Port freischalten zu lassen, hab ich dann einen anderen weg versucht. Ein kurzer Blick ins Kapitel 6 von Pro Git über Submodule zeigte mir die Lösungsansatz, der dann auch gleich zum Erfolg geführt hat:

Die Submodule werden in der Datei .gitmodules mit git:// als Protokoll gespeichert. Also einfach die Option --recursive für das Abrufen der Submodule weglassen

$ git clone git://github.com/nvie/gitflow.git

$ cd gitflow

In der .gitmodules habe ich dann die URL auf http:// umgestellt.

[submodule "shFlags"]
    path = shFlags
    url =
http://github.com/nvie/shFlags.git

Danach war der Rest nur noch ein Kinderspiel

$ git submodule init

$ git submodule update

Danach konnte ich dann ohne Probleme

$ contrib\msysgit-install.cmd

ausführen. Ich nutze im übrigen immer die Portable Version von msysgit und füge dann in meinem Init-Script in der Powershell das CMD Verzeichnis meinem PATH hinzu. Somit erspar ich mir immer das lästige installieren und deinstallieren neuer Versionen und muss lediglich mein Skript anpassen.

VORSICHT: Dieser Lösungsansatz ist nur sinnvoll, wenn ihr von den Repositories ein pull ausführt. Wenn ihr auch Änderungen hochschieben wollt, wird das wohl schiefgehen. Über weitere Lösungen eurerseits wäre ich dankbar. Wer also etwas hat… nur her damit.

Published Dienstag, 20. Dezember 2011 21:41 von Rainer Schuster
Abgelegt unter: ,

Kommentare

Keine Kommentare

Kommentar abgeben

(verpflichtend) 
(verpflichtend) 
(optional)
(verpflichtend)