Veit Schiele Communications

Veit Schiele Communications

Arbeitsabläufe

erstellt von Veit Schielezuletzt verändert: 06.07.2012 18:04 Uhr © Veit Schiele 2006–2011
Artikelaktionen

Import

svn import

Checkt unversionierte Dateien in ein Repository ein, z.B.:

$ svn import vs.policy https://dev.veit-schiele.de/svn/vs.policy -m 'Initial import'

Siehe auch: Produkt importieren

Änderungen durchführen

svn add

fügt Dateien, Verzeichnisse und symbolische Links hinzu, z.B.:

$ svn add vs/policy/migrations
A         vs/policy/migrations
A         vs/policy/migrations/configure.zcml
A         vs/policy/migrations/__init__.py
A         vs/policy/migrations/v1_1
svn delete

löscht ein Objekt aus der Arbeitskopie oder einem Repository, z.B.:

$ svn delete vs/policy/migrations/v1_1
$ svn delete https://dev.veit-schiele.de/svn/vs.policy/trunk/vs/policy/migrations

Alternative Namen: del, remove, rm

svn copy

kopiert eine Datei oder ein Verzeichnis in ein Arbeitskopie oder ein Repository, z.B.:

$ svn copy /home/veit/myproject/src/vs.policy/vs/plicy/setuphandlers.py vs/plicy/
$ svn copy https://dev.veit-schiele.de/svn/vs.policy/trunk https://dev.veit-schiele.de/svn/vs.policy/tags/1.1

Alternative Namen: cp

svn move

verschiebt eine Datei oder ein Verzeichnis in einer Arbeitskopie oder einem Repository, z.B.:

$ svn move vs.policy/vs/plicy/migrations/v1_1 vs.policy/vs/plicy/migrations/v1_1_1
$ svn move https://dev.veit-schiele.de/svn/vs.policy/tags/1.1 https://dev.veit-schiele.de/svn/vs.policy/tags/1.1.1

Alternative Namen: mv, rename, ren

Änderungen überprüfen

svn status

gibt den Status der Dateien und Verzeichnisse in der Arbeitskopie aus, z.B.:

$ svn status
M      vs.policy.egg-info/PKG-INFO
M      setup.py
LGesperrt
MVerändert
XExterne Definition
?Wird nicht von svn verwaltet
!Ist svn bekannt, jedoch fehlerhaft oder unvollständig
~Versioniert als Datei/Verzeichnis/Link, aber jetzt von anderem Typ
ISoll von svn ignoriert werden
ASoll hinzugefügt werden
A  +Hinzugefügt (History vom Ursprungsort übernommen)
M  +Hinzugefügt (History vom Ursprungsort übernommen) und lokale Änderungen
DSoll gelöscht werden
CKonflikte durch ein Update
RSoll ersetzt werden
SWurde auf einen Branch umgestellt
svn log

zeigt Ihnen für jede Revision die Protokollmeldung, Datum, Autor und Pfade der geänderten Dateien, z.B.:

  • Zeige die Meldung des letzten Commits:

    $ svn log -r HEAD
    
  • Zeige alle Protokolle des Arbeitsverzeichnisses seit der letzten Aktualisierung:

    $ svn log -r BASE:HEAD
    
svn diff

zeigt Ihnen die Details einer bestimmten Änderung, z.B.:

  • Zeige die letzte Änderung, die für setuphandlers.py eingecheckt wurde:

    $ svn diff -r PREV:COMMITTED setuphandlers.py
    
  • Zeige die Änderungen der Arbeitskopie zur aktuellen Version im Repository:

    $ svn diff -r HEAD
    
  • Vergleiche die unveränderte Version von setuphandlers.py mit mit der letzten Version im Repository:

    $ svn diff -r BASE:HEAD setuphandlers.py
    
  • Unterschiede in Whitespaces lassen sich ignorieren mit:

    $ svn diff -x -w
    
svn cat
zeigt eine Datei in einer bestimmten Revision.
svn list
zeigt für eine bestimmte Revision die Liste aller Dateien in einem Verzeichnis.

Änderungen rückgängig machen

Lokale Änderungen rückgängig machen

svn revert

macht alle lokalen Änderungen rückgängig, z.B.:

$ svn revert vs/policy/setuphandlers.py
Reverted vs/policy/setuphandlers.py

Falls Sie für ein Verzeichnis mit allen darin enthaltenen Objekten zur BASE-Revision zurückkehren möchten, geben Sie die Option -R an:

$ svn revert -R vs/policy/migrations
Reverted vs/policy/migrations

Checkins rückgängig machen

Subversion ab Version 1.4 enthält für merge die Option -c, mit der sich eine einzelne Version rückgängig machen lässt. Um z.B. die Revision 1678 rückgängig zu machen, kann einfach folgendes eingegeben werden:

$ svn merge -c -1678

Arbeitskopie aktualisieren

svn update

Wenn der Server Änderungen an die Arbeitskopie sendet, wird neben jedem betroffenen Objekt ein Buchstabe angezeigt, z.B.:

  • Nehme die letzte Änderung von setuphandlers.py zurück, wobei die Arbeitsrevision von setuphandlers.py verringert wird:

    $ svn update -r PREV setuphandlers.py
    

    U

    Updated

    A

    Added

    D

    Deleted

    R

    Replaced

    G

    Merged

    C

    Conflict

svn resolve

löst Konflikte in Arbeitskopie-Dateien oder -Verzeichnissen, z.B.:

$ svn update
Conflict discovered in 'setuphandlers.py'
Select: (p) postpone, (df) diff-full, (e) edit,
        (h) help for more options: p
C    setuphandlers.py
Updated to revision 78.
$ svn resolve --accept mine-full setuphandlers.py

Konflikte werden hier nicht semantisch aufgelöst, sondern durch die in --accept angegebene Version:

base
löst den Konflikt, indem die Datei der BASE-Revision verwendet wird bevor Sie die Arbeitskopie aktualisiert haben.
working
wird verwendet, wenn Sie den Konflikt manuell aufgelöst haben, womit die Version ausgeählt wird, die sich aktuell in Ihrer Arbeitskopie befindet.
mine-full
löst den Konflikt auf indem die Version verwendet wird, die sich unmittelbar vor dem Ausführen von svn update in Ihrem Arbeitsverzeichnis befunden hat.
theirs-foll
löst den Konflikt, indem alle betroffenen Dateien durch die Version auf dem Server ersetzt werden.

Änderungen freigeben

svn commit

checkt Änderungen Ihrer Arbeitskopie in das Repository ein, z.B.:

$ svn commit -m 'Added portlets'
Sending    a
Transmitting file data .
Committed revision 5.
Artikelaktionen