Wie fange ich mit svn: externals an?

81

Ich suche ein kurzes und gut geschriebenes Tutorial zur Verwendung von svn: externals.

Ich weiß bereits, wie ich sie grundlegend verwenden kann, aber ich möchte einen guten Artikel, auf den ich bei der Beantwortung von Fragen wie dieser, die kürzlich gestellt wurden, verweisen kann:

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

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

Joel Coehoorn
quelle

Antworten:

47

Hier sind einige Abschnitte dazu im svnbook / TortoiseSVN-Handbuch:

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

In diesem Abschnitt werden vier Möglichkeiten zum Einbeziehen von Unterprojekten in den Workflow erläutert (und dabei fehlt ein fünftes: Symlinks).

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

Ole Lynge
quelle
20

Falls aus den oben angegebenen Links nicht hervorgeht, wie Sie die svn:externalsEigenschaft festlegen, die an eine bestimmte Revision gebunden ist (Pinning), finden Sie hier Folgendes:

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

Dadurch wird ein pluginsUnterverzeichnis unter dem extrasVerzeichnis erstellt und mit der Überarbeitung 12345der externen SVN-URL verknüpft https://svn.example.com/common/plugins.

Es gibt einen Red Bean-Artikel, der die Verwendung vorschlägt, propeditda svn:externalsdies ein mehrzeiliger Wert sein kann. Das obige Beispiel würde wie folgt geändert, um es zu verwenden propedit.

svn propedit svn:externals extras

Sie würden dann eine Zeile für jeden externen Link hinzufügen, der dem oben für den Wert gezeigten Format folgt.

EricD
quelle
0
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 kopieren 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
KunMing Xie
quelle