Frage Wie starte ich mit svn: externals?


Ich bin auf der Suche nach einem prägnanten und gut geschriebenen Tutorial zur Verwendung von svn: externals.

Ich weiß bereits, wie ich sie auf grundlegende Weise benutze, aber ich möchte einen guten Artikel, den ich verlinken kann, wenn ich solche Fragen beantworte, die in letzter Zeit auftauchen:

Was tun mit mehreren Projekten, die von derselben Quelle abhängig sind?

Ich würde es selbst tun, aber ich benutze es nicht oft genug, um mir den Hals zu stecken und ein Tutorial darüber zu schreiben. Google war bei diesem Thema überraschend wenig hilfreich.


75
2018-03-19 17:27


Ursprung


Antworten:


Hier sind einige Abschnitte darüber im svnbook / TortoiseSVN-Handbuch:

Dies ist die Svnbook Seite auf svn: externals. Es ist die nützlichste Ressource zu diesem Thema.

Dieses erklärt vier Möglichkeiten, um Teilprojekte in den Workflow einzubinden (und dabei einen fünften zu verpassen: Symlinks).

Und das letzte ist eine TortoiseSVN-spezifische Seite zum Importieren von Zeug in ein Repository (nicht direkt mit svn: externals).


43
2018-03-19 17:43



Falls es aus den oben angegebenen Links nicht klar ist, wie Sie die svn:externals Eigenschaft, die an eine bestimmte Revision gebunden ist (Pinning), hier ist es:

svn propset svn:externals "plugins -r12345 https://svn.example.com/common/plugins" extras

Das wird machen a plugins Unterverzeichnis unter der extras Verzeichnis und verknüpfen Sie es mit der Revision 12345 der externen SVN-URL https://svn.example.com/common/plugins.

Es gibt einen Red Bean-Artikel, der die Verwendung empfiehlt propedit seit der svn:externals kann ein mehrzeiliger Wert sein. Das obige Beispiel würde wie folgt zur Verwendung geändert werden propedit.

svn propedit svn:externals extras

Sie würden dann für jede externe Verknüpfung eine Zeile hinzufügen, die demselben Format folgt, das oben für den Wert gezeigt wird.


17
2018-01-27 17:36



root/repo1/proj/base/common/log.c
root/repo1/proj/base/common/log.h
root/repo1/proj/base/client

root/repo2/proj/test/base

Wie oben gezeigt, möchten wir 2 Dateien und 1 Verzeichnis nach repo2

Schritt 1

Verzeichnis: / home / jack / repo2 / proj /

cd /home/jack

Schritt 2

svn propset svn:externals "../repo1/proj/base/client proj/base/client" repo2

etwas wie: ln repo1/proj/base/client repo2/proj/base/client

Schritt 3

export SVN_EDITOR=vim

Schritt 4

svn propedit svn:externals repo2

vim zeigt:

../repo1/proj/base/client proj / base / client

Schritt 5: Fügen Sie zwei weitere Dateien hinzu

../repo1/proj/base/client proj/base/client
../repo1/proj/base/common/log.c proj/base/common/log.c
../repo1/proj/base/common/log.h proj/base/common/log.h

0
2017-11-18 03:02