SVN Externals – relative Pfade verwenden

Veröffentlicht von

SVN Externals sind eine praktische Sache. Man kann sich ein anderes Repository in das eigene “hineinziehen”. Wir nutzen dies, um eine gemeinsame Bibliothek über alle unsere Projekte zu teilen. Änderungen und neue Funktionen sind so mit einem einfachen Update in allen Projekten verfügbar.

Ein großes Problem bleibt: ändert sich die URL, z.B. statt http:// wird nun https:// eingesetzt, oder gleich die ganze Adresse funktioniert der Abruf nicht mehr. Man muss dann den Link aktualisieren, was problematisch ist, wenn das External bereits in vielen Tags und Branches verteilt ist.

Zum Glück bietet Subversion die Möglichkeit die URLs für das External relativ zu definieren. Man sollte also nach Möglichkeit die URL als relativen Pfad bzw. URL angeben, um Problemen vorzubeugen.

Folgende Möglichkeiten gibt es.

Relativ zum Verzeichnis

Die Angabe erfolgt relativ zum aktuellen Verzeichnis. Beispiel:

../../libs/liburl

Relativ zum Server

Die Angabe erfolgt relativ zum Server. Dies erspart die Angabe des Servers, “libs” kann z.B. in einem extra Repository sein:

/libs/liburl

Relativ zum Repository

Ein ^am Anfang steht für den Root des aktuellen Repositorys. Dies kann verwendet werden, wenn das External im gleichen Repository ist.

^/libs/liburl

Relativ zum URL-Scheme

Beispiel:

//svn.server.org/repos/libs/liburl

Die erspart die Angabe des URL-Schemas, es wird das gleiche URL-Schema verwendet. Z.B. http:// oder https://. Diese Angabe fällt somit weg.

Bestehende Projekte umbiegen

Ist man einmal in die Falle getappt und hat Probleme mit dem Abruf, muss man die External Properties von Hand korrigieren. Leider ist mir derzeit kein Weg bekannt, wie man mal eben ein “Suchen und Ersetzen” auf das gesamte Repository machen kann. Falls jemand etwas kennt, gerne Bescheid geben.

Die Originalinfos im SVN Handbuch.

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert