Co oznaczają kody wynikowe w SVN?

300

Co oznaczają kody wynikowe w SVN? Potrzebuję szybkiego odniesienia.

Polsonby
źródło

Odpowiedzi:

518

Aby uzyskać dodatkowe informacje, zobacz SVNBook: „Status plików i katalogów kopii roboczych” .

Typowe statusy:

U : Plik roboczy został zaktualizowany

G : Zmiany w repozytorium zostały automatycznie scalone z kopią roboczą

M : Kopia robocza została zmodyfikowana

C : Ten plik jest w konflikcie z wersją w repozytorium

? : Ten plik nie jest pod kontrolą wersji

! : Ten plik jest pod kontrolą wersji, ale brakuje go lub jest niekompletny

Odp . : Ten plik zostanie dodany do kontroli wersji (po zatwierdzeniu)

A + : Ten plik zostanie przeniesiony (po zatwierdzeniu)

D : Ten plik zostanie usunięty (po zatwierdzeniu)

S : Oznacza to, że plik lub katalog został przełączony ze ścieżki reszty kopii roboczej (za pomocą przełącznika svn) do gałęzi

Ja : zignorowałem

X : definicja zewnętrzna

~ : Typ zmieniony

R : Element został zastąpiony w kopii roboczej. Oznacza to, że plik został zaplanowany do usunięcia, a następnie w jego miejsce zaplanowano dodanie nowego pliku o tej samej nazwie.

L : Przedmiot jest zamknięty

E : Przedmiot istniał, tak jakby został stworzony, przez aktualizację svn.

Polsonby
źródło
12
„R”: ten plik został zastąpiony
manifest
8
Co E? Cała dokumentacja mówi „istnieje”, co nie jest aż tak pomocne.
Wyskakuje
2
+1, ale „G: zmiany w repozytorium zostały automatycznie scalone z kopią roboczą” nie ma w podanym źródle (już?)
Julian
86

Zauważ też, że kod wynikowy w drugiej kolumnie odnosi się do właściwości pliku. Na przykład:

U   filename.1
 U  filename.2  
UU  filename.3

nazwa_pliku.1: plik został zaktualizowany
nazwa_pliku.2: właściwość lub właściwości pliku (takie jak svn: keywords) została zaktualizowana
nazwa_pliku 3: zaktualizowano zarówno plik, jak i jego właściwości

Matt Miller
źródło
36

Zawsze możesz uzyskać listę, uruchamiając:

svn status --help
Taryn East
źródło
19

Chcę powiedzieć coś o statusie „G”,

G: Zmiany w repozytorium zostały automatycznie scalone z kopią roboczą

Myślę, że powyższa definicja nie jest jasna, może powodować pewne zamieszanie, ponieważ wszystkie pliki są automatycznie scalane w kopię roboczą, poprawna powinna być:

U = pozycja (U) zaktualizowana do wersji repozytorium

G = lokalne zmiany pozycji elementu (G) ed z repozytorium

C = lokalne zmiany pozycji (C) spowodowane przez repozytorium

D = element (D) usunięty z kopii roboczej

A = pozycja (A) dodana do kopii roboczej

Elie Xu
źródło
Informacje o statusie „G”. Miałem 2 kopie zmian w 2 różnych katalogach wyewidencjonowanych. Popełniłem zmiany z jednego katalogu kasy i kiedy zaktualizowałem drugi katalog kasy, pokazałem stan „G” wskazujący, że zmiany w lokalnym katalogu zostały scalone z repozytorium.
GuruM,
18

Istnieje również status „E”

E = plik istniał przed aktualizacją

Może się tak zdarzyć, jeśli ręcznie utworzysz folder, który zostałby utworzony przez wykonanie aktualizacji.

Jono D.
źródło
13

Zwykle używam svn za pośrednictwem GUI, mojego IDE lub klienta. Z tego powodu nigdy nie pamiętam kodów, kiedy muszę uciekać się do wiersza poleceń.

Uważam, że ten ściągawka jest świetną pomocą: ściągawka Subversion

UberAlex
źródło
1
Nie wyświetla statusu G.
Ark-kun
13

Kolumny statusu SVN

$ svn status
L index.html

Dane wyjściowe polecenia są podzielone na sześć kolumn, ale nie jest to oczywiste, ponieważ czasami kolumny są puste. Być może bardziej sensowne byłoby wskazanie pustych kolumn za pomocą myślników, jak to ls -lrobi, zamiast niczego. Na przykład L index.htmlwyglądałoby to--L--- index.html , co sprawia, że ​​oczywiste jest, że jedyną dostępną informacją jest kolumna trzecia dotycząca blokowania. W każdym razie, gdy wiesz, że zaczyna mieć to większy sens.

Pierwsza kolumna Status SVN: A, D, M, R, C, X, I,?,!, ~

Pierwsza kolumna wskazuje, że element został dodany, usunięty lub w inny sposób zmieniony.

      Bez modyfikacji.

 A    Produkt jest zaplanowany do dodania.

 D    Element jest zaplanowany do usunięcia.

 M    Przedmiot został zmodyfikowany.

 R    Produkt został zastąpiony w kopii roboczej. Oznacza to, że plik został zaplanowany do usunięcia, a następnie w jego miejsce zaplanowano dodanie nowego pliku o tej samej nazwie.

 C    Zawartość (w przeciwieństwie do właściwości) elementu powoduje konflikt z aktualizacjami otrzymanymi z repozytorium.

 X    Pozycja jest związana z definicją zewnętrzną.

 I    Element jest ignorowany (np. Za pomocą właściwości svn: ignore).

 ?    Produkt nie jest objęty kontrolą wersji.

 !    Brakuje elementu (np. Zostałeś przeniesiony lub usunięty bez użycia svn). Wskazuje to również, że katalog jest niekompletny (pobieranie lub aktualizacja została przerwana).

 ~    Element jest wersjonowany jako jeden rodzaj obiektu (plik, katalog, łącze), ale został zastąpiony innym rodzajem obiektu.

Druga kolumna Status SVN: M, C

Druga kolumna informuje o stanie właściwości pliku lub katalogu.

      Bez modyfikacji.

 M    Właściwości tego elementu zostały zmodyfikowane.

 C    Właściwości tego elementu są w konflikcie z aktualizacjami właściwości otrzymanymi z repozytorium.

Trzecia kolumna Status SVN: L

Trzecia kolumna jest zapełniana tylko wtedy, gdy katalog kopii roboczej jest zablokowany (czyszczenie svn zwykle powinno wystarczyć, aby ją wyczyścić)

      Przedmiot nie jest zablokowany.

 L    Przedmiot jest zamknięty.

Czwarta kolumna Status SVN: +

Czwarta kolumna jest zapełniana tylko wtedy, gdy element jest zaplanowany do dodania z historią.

      Brak historii z zatwierdzeniem.

 +    Historia zaplanowana z zatwierdzeniem.

Piąta kolumna Status SVN: S

Piąta kolumna jest zapełniana tylko wtedy, gdy kopia robocza elementu jest przełączona względem jego elementu nadrzędnego

      Element jest potomkiem katalogu nadrzędnego.

 S    Przedmiot został zamieniony.

Status szóstej kolumny SVN: K, O, T, B

Szósta kolumna zawiera informacje o blokadzie.

      Gdy używane jest –show-updates, plik nie jest zablokowany. Jeśli nie użyto –show-updates, oznacza to po prostu, że plik nie jest zablokowany w tej kopii roboczej.

 K    Plik jest zablokowany w tej kopii roboczej.

 O    Plik jest zablokowany przez innego użytkownika lub w innej kopii roboczej. Pojawia się tylko wtedy, gdy używane jest –show-updates.

 T    Plik został zablokowany w tej kopii roboczej, ale zamek został skradziony i jest nieprawidłowy. Plik jest obecnie zablokowany w repozytorium. Pojawia się tylko wtedy, gdy użyto –show-updates. -

 B    Plik został zablokowany w tej kopii roboczej, ale blokada została zerwana i jest nieprawidłowa. Plik nie jest już zablokowany Pojawia się tylko wtedy, gdy użyto opcji –show-updates.

Siódma kolumna Status SVN: *

Nieaktualne informacje pojawiają się w siódmej kolumnie (tylko jeśli przejdziesz przełącznik –show-updates). Jest to coś, czego ludzie nowi od SVN oczekują od polecenia, nie zdając sobie z tego sprawy, porównują tylko bieżący stan pliku z informacjami, które pobrał z serwera podczas ostatniej aktualizacji.

      Element w kopii roboczej jest aktualny.

 *    Na serwerze istnieje nowsza wersja elementu.

Spyryto
źródło
7

Ilekroć nie masz dostępu do dokumentacji ( SVNBook ), wpisz (Linux):

svn help status | grep \'\?\'
svn help status | grep \'\!\'
svn help status | grep \'\YOUR_SYMBOL_HERE\'

lub wstaw następującą funkcję do pliku ~ / .bashrc, na przykład:

svncode() {
  symbol=$1
  [ $symbol ] &&  svn help status | grep \'$(echo $symbol)\' || \
  echo "usage: svncode <symbol>"
}

wprowadź opis zdjęcia tutaj

Alan
źródło
1
IMO to nie „gdy się spieszysz”, ale „gdy nie masz dostępu do dokumentacji” (np. SVNBook).
bahrep
@bahrep dzięki, to jest sposób, aby na to spojrzeć. Poprawione zgodnie z sugestią.
Alan