Was bedeuten die Ergebniscodes in SVN?

300

Was bedeuten die Ergebniscodes in SVN? Ich brauche eine Kurzreferenz.

Polsonby
quelle

Antworten:

518

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.

Polsonby
quelle
12
"R": Diese Datei wurde ersetzt
Manifest
8
Was ist mit E? Die gesamte Dokumentation sagt "Existed", was nicht so hilfreich ist.
Pops
2
+1, aber "G: Änderungen am Repo wurden automatisch in die Arbeitskopie übernommen" ist nicht in der angegebenen Quelle (mehr?)
Julian
86

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

Matt Miller
quelle
36

Sie können jederzeit eine Liste abrufen, indem Sie Folgendes ausführen:

svn status --help
Taryn East
quelle
19

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

Elie Xu
quelle
Über den 'G'-Status. Ich hatte 2 Kopien der Änderungen in 2 verschiedenen ausgecheckten Verzeichnissen. Ich habe die Änderungen von einem Checkout-Verzeichnis übernommen und als ich das andere Checkout-Verzeichnis aktualisiert habe, wurde der Status 'G' angezeigt, der angibt, dass die Änderungen im lokalen Verzeichnis mit dem Repository zusammengeführt wurden.
GuruM
18

Es gibt auch einen 'E'-Status

E = Datei vor Update vorhanden

Dies kann passieren, wenn Sie manuell einen Ordner erstellt haben, der durch Ausführen eines Updates erstellt worden wäre.

Jono D.
quelle
13

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

UberAlex
quelle
1
Der G-Status wird nicht aufgelistet.
Ark-Kun
13

SVN-Statusspalten

$ 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 -list, anstatt mit nichts. Dann L index.htmlwü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.

Erste Spalte des SVN-Status: A, D, M, R, C, X, I,?,!, ~

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.

SVN Status zweite Spalte: M, C.

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.

SVN Status dritte Spalte: L.

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.

SVN Status vierte Spalte: +

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.

SVN Status fünfte Spalte: S.

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.

SVN Status sechste Spalte: K, O, T, B.

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.

SVN Status siebte Spalte: *

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.

Spyryto
quelle
7

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>"
}

Geben Sie hier die Bildbeschreibung ein

Alan
quelle
1
IMO, es ist nicht "wenn Sie es eilig haben", sondern "wenn Sie keinen Zugriff auf die Dokumentation haben" (z. B. SVNBook).
Bahrep
@bahrep danke, so sieht es aus. Wie vorgeschlagen korrigiert.
Alan