SVN
jest systemem
kontroli wersji, który łatwo integruje się z wieloma
środowiskami programistycznymi. Istnieje również wiele
samodzielnych programików go wykorzystujących oraz
ogólnodostępne serwery umożliwiające przechowywanie
repozytorów. Poniżej krótka instrukcja obsługi opierająca
się na narzędziach wspierających SVN.
Jak używać SVN
Wszystkie grupy projektowe mają już założone projekty. Aby zacząć z nich korzystać należy
wypożyczyć kopię roboczą projektu (checkout), dodać (lub zmodyfikować) do niej pliki
projektowe, a następnie wysłać modyfikacje na serwer (commit).
kdesvn (Linux)
Tworzenie kopii roboczej projektu
1.Otworzyć repozytorium, podczas otwierania podaje się url znajdujący się na stronie java.net
2.Logując się należy podać login i hasło
3.Wybrać polecenie Subversion
-> General -> Checkout a repository. W oknie
dialogowym należy wypełnić pola Enter
URL (ten sam url co przy otwieraniu repozytorium), oraz Select target directory
(ścieżka do katalogu w którym będzie przechowywana kopia
robocza projektu)
Dodawanie i aktualizacja plików/katalogów
1.Skopiować plik/katalog do katalogu zawierającego kopię roboczą
projektu
2.Otworzyć w kdesvn kopię roboczą projektu
3.Dodany plik (powinien mieć status Not versioned)
należy zaznaczyć i wykonać polecenie Subverion -> Working copy
-> Add selected files/dirs
4.W celu wysłania modyfikacji do repozytorium należy wykonać polecenie Subversion -> Working
copy -> Commit. Tego polecenia należ używać
również w celu wysyłania modyfikacji dokonanych we wnętrzu
pliku.
Aktualizacja kopi roboczej projektu
1.Otworzyć w kdesvn kopię roboczą projektu
2.Wykonać polecenie Subversion
-> Working copy -> Update to head
TortoiseSVN (Windows)
Tworzenie kopii roboczej projektu
1.Kliknąć prawym klawiszem myszy na folderze i wybrać polecenie SNV Checkout...
2.W oknie dialogowym, które się pojawi należy wypełnić pole URL of repository: url znajduje się na stronie java.net
3.W katalogu na którym klikano pojawi się kopia robocza
projektu
Dodawanie i aktualizacja plików/katalogów
1.Skopiować plik/katalog do katalogu zawierającego kopię roboczą
projektu
2.Kliknąć prawym klawiszem myszy na pliku/katalogu i wybrać polecenie TortoiseSVN -> Add...
3.W celu wysłania modyfikacji do repozytorium należy wykonać polecenie
(również z menu prawego przycisku myszy) SVN Commit...
Poleceniem tym wysyła się do repozytorium również
modyfikacje dokonane we wnętrzu pliku.
Aktualizacja kopi roboczej projektu
1.Do aktualizacji służy polecenie z menu prawego przycisku myszy SVN Update
Klient Subversion (konsola)
Umieszczanie w repozytorium plików lub katalogów dotychczas
nie podlegający zarządzaniu wersjami.
Użycie: import [ŚCIEŻKA] URL
Rekurencyjnie kopiuje ŚCIEŻKA do URL. Jeśli ŚCIEŻKA nie jest podana,
domyślną wartością jest '.'. W repozytorium są w razie potrzeby
tworzone brakujące katalogi nadrzędne. Jeśli argument ŚCIEŻKA jest
katalogiem, to zawartość katalogu jest dodawana bezpośrednio za URLem.
Przydatne parametry:
-m ARG
: użyj
podanego tekstu jako opisu zmian
--username ARG : użyj ARG jako nazwy użytkownika
--password ARG : użyj ARG jako hasła
Tworzenie kopii roboczej projektu
Użycie: checkout URL[@WERSJA]... [ŚCIEŻKA]
Pobiera dane z URL i umieszcza je w ŚCIEŻKA.
Przydatne parametry:
-r ARG
: numer rewizji
--username ARG : użyj ARG jako nazwy użytkownika
--password ARG : użyj ARG jako hasła
Dodawanie i aktualizacja plików/katalogów
Użycie: commit [ŚCIEŻKA...]
Zatwierdza zmiany dokonane na kopii roboczej zapisując je w
repozytorium. ŚCIEŻKA wskazuje pliki/katalogi z kopii roboczej,
które mają być uaktualnione w repozytorium.
Przydatne parametry:
-m ARG
: użyj
podanego tekstu jako opisu zmian
--username ARG : użyj ARG jako nazwy użytkownika
--password ARG : użyj ARG jako hasła
Aktualizacja kopi roboczej projektu
Użycie: update [ŚCIEŻKA...]
Aktualizuje kopię roboczą nanosząc zmiany obecne w repozytorium.
Jeśli nie podano wersji, nanoszone są najnowsze zmiany
z
repozytorium (wersja HEAD). W przeciwnym wypadku, kopia robocza
jest synchronizowana z wersją podaną przy pomocy opcji
-r.
Dla każdego aktualizowanego obiektu wypisywany jest pojedynczy wiersz
rozpoczynający się od informacji o zrealizowanej operacji.
Informacja ta jest kodowana przy pomocy litery:
A Dodany (Added)
D Usunięty (Deleted)
U Zaktualizowany (Updated)
C Konflikt (Conflict)
G Dołączono zmiany (Merged)
Przy tym dla każdego obiektu w pierwszej kolumnie podawana jest w ten
sposób informacja o zmianach w samym pliku a w drugiej o
zmianach w jego atrybutach. Litera 'B' w trzeciej kolumnie oznacza, że
żeton blokady tego pliku został albo uszkodzony albo wykradziony.
Przydatne parametry:
-r ARG
: numer rewizji
--username ARG : użyj ARG jako nazwy użytkownika
--password ARG : użyj ARG jako hasła
--diff3-cmd ARG : użyj ARG jako polecenia merge
(łączącego)
Porównywanie dwóch wersji projektu
Użycie:
1. diff
[-r N[:M]] [CEL[@WERSJA]...]
2. diff
[-r N[:M]] --old=STARY[@WER1] [--new=NOWY[@WER2]] [ŚCIEŻKA...]
3. diff
URL1[@WER1] URL2[@WER2]
1. Pokaż zmiany między dwoma wersjami dla obiektu
wskazywanego
przez CEL w wersji WERSJA. Każdy obiekt CEL może być zarówno
ścieżką kopii roboczej jak i URLem. Domyślną wartością N jest BASE
jeśli CEL jest ścieżką do kopii roboczej; w przeciwnym przypadku musi
zostać podana jawnie. Domyślną wartością M jest aktualna wersja robocza
lub, jeśli CEL jest URLem, HEAD.
2. Pokaż listę różnic między STARY w wersji WER1 a NOWY w
wersji WER2. ŚCIEŻKI, o ile są podane, są traktowane jako względne w
stosunku do STARY i NOWY i ograniczają porównanie do podanych
katalogów lub plików. STARY jak i NOWY mogą być ścieżkami
kopii roboczych jak i URLi postaci URL[WERSJA]. Jeśli obiekt
NOWY
nie zostanie podany, to domyślnie będzie wskazywał na obiekt
STARY. '-r N' ustala wersję STARY na N, '-r N:M' dodatkowo
ustala
wersję NOWY na M.
3. Skrót dla 'svn diff --old=URL1[WER1]
--new=URL2[WER2]'. W szczególności prosty zapis 'svn diff'
prezentuje zmiany wprowadzone w kopii roboczej w stosunku do
wersji pobranej z repozytorium (zmiany do zatwierdzenia).
Przykład:
svn diff -r 7:27 --old=URL1
--new=URL1 -
Wyświetla różnice
pomiędzy rewizją 7, a 27 projektu, którego repozytorium jest
dostępne pod adresem URL1.