Odpowiedzi:
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.
E
? Cała dokumentacja mówi „istnieje”, co nie jest aż tak pomocne.
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
Zawsze możesz uzyskać listę, uruchamiając:
svn status --help
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
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
$ 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 -l
robi, zamiast niczego. Na przykład L index.html
wyglą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 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 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 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 jest zapełniana tylko wtedy, gdy element jest zaplanowany do dodania z historią.
Brak historii z zatwierdzeniem.
+
Historia zaplanowana z zatwierdzeniem.
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.
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.
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.
Spójrz w podręczniku Subversion Book: „Status plików i katalogów kopii roboczych”
Gorąco polecam wszystkim, którzy robią prawie wszystko z SVN.
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>"
}