2009-06-15 20 views
3

Wie kann ich eine Verzeichnisverknüpfung erstellen, die git submodule update überleben wird?git Submodule: ln -s

die folgende Beispiel Verzeichnisstruktur Gegeben:

proj 
|-- lib3 
| `-- submod 
|  `-- lib 
`-- lib 

ich proj/lib/-proj/lib3/submod/lib mit so etwas wie der folgenden Befehl einen Softlink erstellt:

[email protected]:~/proj/lib$ ln -s ../lib3/submod/lib submodlib 

die folgenden Verzeichnisstruktur zu erstellen:

proj 
|-- lib3 
| `-- submod 
|  `-- lib 
`-- lib 
    `-- submodlib 

Allerdings laufen ing git submodule update zerstört meine Verbindung. Ich hatte den Eindruck, dass eine weiche Verknüpfung eine logische Verknüpfung zu einem relativen Pfad ist. Wenn Sie also das Objekt entfernen und erneut hinzufügen, bleibt die Verknüpfung intakt. Wie kann ich den gewünschten Effekt erzielen?

Antwort

1

Ein Softlink mit ln -s sollte sich wie gewünscht verhalten. Wie ich es verstehe, wenn Sie eine git submodule update tun ein Teil Ihres Verzeichnisses proj/lib3/submod/lib wird gelöscht und neu erstellt. Das bedeutet, dass es keinen Unterschied darin gibt, als manuell eine rm proj/lib3/submod und danach eine mkdir -p proj/lib3/submod/lib zum Beispiel.

Ich testete dies manuell (rm und mkdir) auf meiner openSuse Linux Installation und der Soft Link war immer noch in Ordnung, nachdem die Verzeichnisstruktur neu erstellt wurde.

In welcher OS-Umgebung arbeiten Sie? Vielleicht ist es kein echter Softlink.

+0

Das ist ein sehr guter Punkt. Ich benutze Kubuntu Linux die meiste Zeit, obwohl ich manchmal von Cygwin hereingehe, wenn ich keine Kopie von Linux zur Hand habe. Ich werde das nochmal versuchen und sicherstellen, dass ich es in Linux mache. Vielen Dank! – brad