Antworten:
Weitere Informationen finden Sie im SVNBook: "Status der Arbeitskopiedateien und -verzeichnisse " .
Die allgemeinen Status:
U : Arbeitsdatei wurde aktualisiert
G : Änderungen am Repo wurden automatisch in die Arbeitskopie übernommen
M : Arbeitskopie wurde geändert
C : Diese Datei widerspricht der Version im Repo
? : Diese Datei unterliegt nicht der Versionskontrolle
! : Diese Datei unterliegt der Versionskontrolle, fehlt jedoch oder ist unvollständig
A : Diese Datei wird der Versionskontrolle hinzugefügt (nach dem Festschreiben).
A + : Diese Datei wird verschoben (nach dem Festschreiben)
D : Diese Datei wird gelöscht (nach dem Festschreiben)
S : Dies bedeutet, dass die Datei oder das Verzeichnis vom Pfad der restlichen Arbeitskopie (mithilfe des SVN-Schalters) zu einem Zweig gewechselt wurde
Ich : Ignoriert
X : Externe Definition
~ : Typ geändert
R : Artikel wurde in Ihrer Arbeitskopie ersetzt. Dies bedeutet, dass das Löschen der Datei geplant war und dann eine neue Datei mit demselben Namen an ihrer Stelle hinzugefügt werden sollte.
L : Gegenstand ist gesperrt
E : Das Element war so vorhanden, wie es durch ein SVN-Update erstellt worden wäre.
E
? Die gesamte Dokumentation sagt "Existed", was nicht so hilfreich ist.
Beachten Sie auch, dass ein Ergebniscode in der zweiten Spalte auf die Eigenschaften der Datei verweist. Zum Beispiel:
U filename.1
U filename.2
UU filename.3
Dateiname.1: Die Datei wurde aktualisiert.
Dateiname.2: Eine Eigenschaft oder Eigenschaften in der Datei (z. B. svn: Schlüsselwörter) wurden aktualisiert.
Dateiname.3: Sowohl die Datei als auch ihre Eigenschaften wurden aktualisiert
Sie können jederzeit eine Liste abrufen, indem Sie Folgendes ausführen:
svn status --help
Ich möchte etwas über den "G" -Status sagen,
G: Änderungen am Repo wurden automatisch in die Arbeitskopie übernommen
Ich denke, die obige Definition ist nicht klar, sie kann ein wenig Verwirrung stiften, da alle Dateien automatisch in die Arbeitskopie eingefügt werden. Die richtige sollte sein:
U = Element (U), aktualisiert auf die Repository-Version
G = lokale Änderungen des Elements, die mit dem Repository verknüpft sind
C = lokale Änderungen des Elements (C), die mit dem Repository in Konflikt stehen
D = Punkt (D) aus der Arbeitskopie
A = Punkt (A) in Arbeitskopie
Normalerweise benutze ich svn über eine GUI, entweder meine IDE oder einen Client. Aus diesem Grund kann ich mich nie an die Codes erinnern, wenn ich auf die Befehlszeile zurückgreifen muss.
Ich finde diesen Spickzettel eine große Hilfe: Subversion Spickzettel
$ svn status
L index.html
Die Ausgabe des Befehls ist in sechs Spalten unterteilt. Dies ist jedoch nicht offensichtlich, da die Spalten manchmal leer sind. Vielleicht wäre es sinnvoller gewesen, die leeren Spalten mit Bindestrichen zu kennzeichnen, wie es der Fall ls -l
ist, anstatt mit nichts. Dann L index.html
würde zum Beispiel so aussehen --L--- index.html
, was es offensichtlich macht, dass die einzige Information, die wir haben, in der dritten Spalte die über das Sperren ist. Wie auch immer, sobald Sie wissen, dass es sinnvoller wird.
Die erste Spalte gibt an, dass ein Element hinzugefügt, gelöscht oder auf andere Weise geändert wurde.
Keine Änderungen.
A
Artikel ist für die Hinzufügung geplant.
D
Artikel ist zum Löschen geplant.
M
Artikel wurde geändert.
R
Artikel wurde in Ihrer Arbeitskopie ersetzt. Dies bedeutet, dass das Löschen der Datei geplant war und dann eine neue Datei mit demselben Namen an ihrer Stelle hinzugefügt werden sollte.
C
Der Inhalt (im Gegensatz zu den Eigenschaften) des Elements steht in Konflikt mit den vom Repository empfangenen Aktualisierungen.
X
Artikel bezieht sich auf eine externe Definition.
I
Element wird ignoriert (z. B. mit der Eigenschaft svn: ignore).
?
Artikel steht nicht unter Versionskontrolle.
!
Element fehlt (z. B. Sie haben es ohne Verwendung von svn verschoben oder gelöscht). Dies zeigt auch an, dass ein Verzeichnis unvollständig ist (ein Checkout oder eine Aktualisierung wurde unterbrochen).
~
Das Element ist als eine Art von Objekt (Datei, Verzeichnis, Link) versioniert, wurde jedoch durch eine andere Art von Objekt ersetzt.
Die zweite Spalte gibt den Status der Eigenschaften einer Datei oder eines Verzeichnisses an.
Keine Änderungen.
M
Die Eigenschaften für dieses Element wurden geändert.
C
Die Eigenschaften für dieses Element stehen im Widerspruch zu den vom Repository empfangenen Eigenschaftsaktualisierungen.
Die dritte Spalte wird nur ausgefüllt, wenn das Arbeitskopienverzeichnis gesperrt ist (eine SVN-Bereinigung sollte normalerweise ausreichen, um es zu löschen).
Artikel ist nicht gesperrt.
L
Artikel ist gesperrt.
Die vierte Spalte wird nur ausgefüllt, wenn das Element für die Hinzufügung mit Verlauf geplant ist.
Kein Commit mit Commit geplant.
+
Verlauf mit Commit geplant.
Die fünfte Spalte wird nur ausgefüllt, wenn die Arbeitskopie des Elements relativ zum übergeordneten Element geändert wird
Item ist ein untergeordnetes Element des übergeordneten Verzeichnisses.
S
Artikel ist geschaltet.
Die sechste Spalte enthält Sperrinformationen.
Wenn –show-updates verwendet wird, ist die Datei nicht gesperrt. Wenn –show-updates nicht verwendet wird, bedeutet dies lediglich, dass die Datei in dieser Arbeitskopie nicht gesperrt ist.
K
Die Datei ist in dieser Arbeitskopie gesperrt.
O
Die Datei wird entweder von einem anderen Benutzer oder in einer anderen Arbeitskopie gesperrt. Dies wird nur angezeigt, wenn –show-updates verwendet wird.
T
Die Datei wurde in dieser Arbeitskopie gesperrt, aber die Sperre wurde gestohlen und ist ungültig. Die Datei ist derzeit im Repository gesperrt. Dies wird nur angezeigt, wenn –show-updates verwendet wird.
B
Die Datei wurde in dieser Arbeitskopie gesperrt, aber die Sperre wurde aufgehoben und ist ungültig. Die Datei ist nicht mehr gesperrt. Dies wird nur angezeigt, wenn –show-updates verwendet wird.
Die veralteten Informationen werden in der siebten Spalte angezeigt (nur wenn Sie den Schalter –show-updates übergeben haben). Dies ist etwas, was SVN-Neulinge von dem Befehl erwarten, ohne zu bemerken, dass er nur den aktuellen Status der Datei mit den Informationen vergleicht, die er beim letzten Update vom Server abgerufen hat.
Der Artikel in Ihrer Arbeitskopie ist aktuell.
*
Auf dem Server ist eine neuere Version des Elements vorhanden.
Schauen Sie sich die Referenz zum Subversion-Buch an: "Status der Arbeitskopiedateien und -verzeichnisse"
Sehr empfehlenswert für alle, die mit SVN so ziemlich alles machen.
Wenn Sie keinen Zugriff auf Dokumentation ( SVNBook ) haben, geben Sie (Linux) ein:
svn help status | grep \'\?\'
svn help status | grep \'\!\'
svn help status | grep \'\YOUR_SYMBOL_HERE\'
oder fügen Sie die folgende Funktion wie folgt in Ihre ~ / .bashrc-Datei ein:
svncode() {
symbol=$1
[ $symbol ] && svn help status | grep \'$(echo $symbol)\' || \
echo "usage: svncode <symbol>"
}