svn switch — Arbeitskopie auf einen anderen URL aktualisieren.
Die erste Variante dieses Unterbefehls (ohne die
Option --relocate
) aktualisiert Ihre
Arbeitskopie so, dass sie auf einen neuen URL zeigt
– normalerweise ein URL, der, allerdings nicht
notwendigerweise, einen gemeinsamen Vorgänger mit Ihrer
Arbeitskopie hat. Auf diese Weise schaltet Subversion eine
Arbeitskopie auf einen neuen Zweig um. Wenn
PEGREV
angegeben wird,
bezeichnet es die Revision, bei der das Ziel zuerst
gesucht wird. Siehe „Zweige durchlaufen“ für eine detaillierte
Betrachtung des Umschaltens.
Wird die Option --force
verwendet,
verursachen unversionierte Pfade, die sich beim Versuch
umzuschalten im Weg befinden, nicht automatisch einen
Fehler, falls durch das Umschalten versucht wird, den
selben Pfad anzulegen. Wen der im Weg liegende Pfad den
selben Typ (Datei oder Verzeichnis) wie der entsprechende
Pfad im Projektarchiv hat, wird er versioniert, der Inhalt
bleibt jedoch in der Arbeitskopie unverändert. Das
bedeutet, dass die Kindelemente eines sich im Weg
befindlichen Verzeichnisses ebenfalls im Weg befinden und
versioniert werden können. Alle inhaltlichen Unterschiede
von sich im Weg befindlichen Dateien zum Projektarchiv werden
als lokale Änderung an der Arbeitskopie betrachtet. Alle
Eigenschaften aus dem Projektarchiv werden auf den sich im Weg
befindlichen Pfad angewendet.
Wie bei den meisten Unterbefehlen können Sie den
Wirkbereich des Umschaltbefehls mit der Option
--depth
auf einen bestimmten Baum
beschränken. Alternativ können Sie die Option
--set-depth
verwenden, um eine neue
Wirktiefe für das Umschaltziel in der Arbeitskopie
festzulegen. Momentan kann die Wirktiefe nur erhöht
werden; sie können ein Verzeichnis nicht flacher
machen.
Die Option --relocate
veranlasst
svn switch, etwas ganz anderes zu
machen: es aktualisiert Ihre Arbeitskopie so, dass es auf
das gleiche Verzeichnis im Projektarchiv
zeigt, allerdings unter einem anderen Projektarchiv-URL
(typischerweise weil ein Administrator das Projektarchiv
entweder auf einen anderen Server verschoben oder den URL
geändert hat).
--accept ARG --depth ARG --diff3-cmd CMD --force --ignore-externals --quiet (-q) --relocate --revision (-r) REV --set-depth ARG
Falls Sie sich momentan innerhalb des Verzeichnisses
vendors
befinden, das nach
vendors-with-fix
abgezweigt wurde,
und Sie Ihre Arbeitskopie nun auf diesen Zweig umschalten
möchten:
$ svn switch http://svn.red-bean.com/repos/branches/vendors-with-fix . U myproj/foo.txt U myproj/bar.txt U myproj/baz.c U myproj/qux.c Aktualisiert zu Revision 31.
Um zurückzuschalten, brauchen Sie nur den URL des Ortes im Projektarchiv anzugeben, von dem Sie ursprünglich Ihre Arbeitskopie ausgecheckt haben:
$ svn switch http://svn.red-bean.com/repos/trunk/vendors . U myproj/foo.txt U myproj/bar.txt U myproj/baz.c U myproj/qux.c Aktualisiert zu Revision 31.
Tipp | |
---|---|
Sie können auch nur einen Teil Ihrer Arbeitskopie auf einen Zweig umschalten, falls Sie nicht Ihre gesamte Arbeitskopie nehmen wollen. |
Manchmal kann es vorkommen, dass ein Administrator den
Ort (oder den scheinbaren Ort) Ihres Projektarchivs ändert
– mit anderen Worten: der Inhalt des Projektarchivs
ändert sich nicht, wohl aber der Wurzel-URL des
Projektarchivs. So kann sich beispielsweise der Name des
Wirtsrechners, das URL-Schema oder irgend ein Teil des
URL, der auf das Projektarchiv zeigt, ändern. Statt eine neue
Arbeitskopie auszuchecken, können Sie den Befehl
svn switch dazu verwenden, die
Metadaten im Verwaltungsbereich Ihrer Arbeitskopie
„überschreiben“ zu lassen, damit diese auf
den neuen Ort des Projektarchivs verweisen. Falls Sie
svn switch die Option
--relocate
mitgeben, nimmt Subversion
Verbindung mit dem Projektarchiv auf, um die Gültigkeit der
Anfrage zu bestätigen (indem es im Projektarchiv natürlich
unter dem neuen URL nachfragt) und anschließend die
Metadaten zu überschreiben. Durch diese Operation werden
keinerlei Dateiinhalte verändert – es werden
lediglich die Metadaten der Arbeitskopie verändert.
$ svn checkout file:///var/svn/repos test A test/a A test/b … $ mv repos newlocation $ cd test/ $ svn update svn: Kann keine ra_local-Verbindung zu einer URL aufbauen svn: Projektarchiv »file:///var/svn/repos« kann nicht geöffnet werden $ svn switch --relocate file:///var/svn/repos file:///tmp/newlocation . $ svn update Revision 3.
Warnung | |
---|---|
Seien Sie vorsichtig, wenn Sie die Option
|