Systemy kontroli wersji ułatwiają grupową pracę wielu programistów nad jednym projektem. Pozwalają one na współbieżną współpracę poprzez internet wielu osób nad tym samym kodem źródłowym. Najbardziej popularnym systemem kontroli wersji jest CVS, wykorzystywany między innymi przy tworzeniu interpretatora PHP.
Z powodu kilku wad systemu CVS, pięć lat temu powstał system Subversion, nazywany
również SVN, który stopniowo zastępuje CVS. W artykule opiszę główne cechy
systemu Subversion i pokażę, w jaki sposób możesz rozpocząć wykorzystywać
SVN we własnych projektach.
Wszędzie tam, gdzie nad jednym projektem
pracuje wiele osób, zastosowanie znajduje
system kontroli wersji. Przechowuje on
na serwerze pliki projektu. Programista, który chce
wykonać poprawki lub zmiany w kodzie źródłowym,
pobiera aktualny kod projektu z serwera.
Po dokonaniu zmian w plikach, kod projektu jest
przesyłany przez programistę ponownie na serwer.
Oprogramowanie kontroli wersji scala pliki przesłane
przez programistę z kodem przechowywanym
na serwerze.
Proces scalania jest niemal całkowicie automatyczny.
Nawet, jeśli wielu programistów wykonało
zmiany w projekcie i przesłało nowe wersje kodu
na serwer w tym samym czasie, oprogramowanie
kontroli wersji poprawnie scali wszystkie dokonane
zmiany (być może w wielu plikach naraz lub w niektórych
plikach w wielu miejscach).
Jedynie wykluczające się wzajemnie zmiany dotyczące
dokładnie tego samego miejsca w jednym
pliku nie mogą być rozstrzygnięte automatycznie.
Wówczas potrzebna jest ingerencja jednego
z programistów, który musi ręcznie wybrać jedną
wersję wprowadzonych modyfikacji. Co ciekawe,
takie kolizje w rzeczywistości są dość rzadkie (pod
warunkiem, że poszczególni developerzy mają
ściśle wyznaczone zadania).
Opisany model pracy jest określany jako
kopiuj-modyfikuj-scal (ang. copy-modify-merge).
W modelu tym, poza specjalnymi przypadkami, nie
występują blokady. Żaden z plików projektu nie
jest zablokowany. Programista może pobrać kod
całego projektu i pracować nad dowolnym plikiem
w dowolnej chwili. Nie musi czekać, aż któryś z kolegów
zakończy pracę czy wykona uaktualnienia.
Programiści są wzajemnie niezależni.
Subversion
System Subversion powstał w roku 2001.
Pomysł na opracowanie nowego systemu kontroli
wersji wykluwał się od początku roku 2000, zaś
31 sierpnia 2001 roku system Subversion był na
tyle gotowy, że został zastosowany do zarządzania
swoim własnym kodem źródłowym.
Powodem powstania Subversion były niedoskonałości
w systemie CVS – najpopularniejszym
systemie kontroli wersji. System CVS nie prowadzi
rejestru nazw katalogów i plików oraz operacji na
nich. Skopiowanie, przesunięcie czy zmiana nazwy
pliku nie zostają zarejestrowane przez system i nie
mogą być wycofane. Druga poważną wadą systemu
CVS jest sposób przesyłania zmian na serwer. Zatwierdzanie
dokonanych zmian może – w przypadku
zerwania połączenia sieciowego – zostać wykonane
tylko częściowo. Niektóre pliki zostaną uaktualnione na serwerze, a niektóre nie. Oba systemy SVN oraz
CVS stosują model skopiuj-modyfikuj-scal.
Cechy systemu Subversion
Subversion może być postrzegany jako serwer
plików wzbogacony o dodatkową funkcjonalność.
W wirtualnym systemie plików udostępnianym
przez serwer wszystkie zmiany, a więc zawartość,
nazwy, atrybuty oraz położenie plików i katalogów
podlegają śledzeniu i mogą być wycofywane.
System rejestruje zmiany dotyczące nie tylko zawartości,
ale także wszystkich innych cech plików.
Foldery podlegają rejestracji w taki sam sposób
jak pliki.
Śledzeniu podlegają także operacje na plikach
i folderach: tworzenie, kopiowanie, przesuwanie,
usuwanie, zmiana nazwy.
Zatwierdzenie poprawek przez programistę
jest operacją atomową: odbędzie się ona w całości
lub nie odbędzie się wcale (bez względu na to ilu
plików dotyczy).
Każdy plik oraz folder może posiadać dowolny
zestaw metadanych: dodatkowych informacji podlegających
zarządzaniu wersjami. Metadane mają
postać tablicy: nazwa atrybutu – wartość atrybutu.
Subversion został zaimplementowany m.in.
w postaci modułu serwera Apache, dzięki czemu
dostęp do repozytoriów może wykorzystywać SSL,
kompresję danych i wszelkie inne udogodnienia
oferowane przez Apache\’a.
System pozwala na rejestrację wersji zarówno
plików tekstowych, jak i binarnych.
System Subversion został zaimplementowany
od zera, bez żadnych obciążeń historycznych. Jest
to kolekcja współdzielonych bibliotek napisanych
w C z dobrze zdefiniowanym interfejsem API.
Dzięki temu może być w sposób prosty i wydajny
stosowany w innych programach.
Rodzaje instalacji oprogramowania Subversion
Oprogramowanie Subversion składa się z klienta
oraz serwera. Dodatkowo, zarówno klient, jak
i serwer mogą być instalowane na dwa sposoby.
W przypadku klienta metodami tymi są: instalacja
trybu tekstowego oraz instalacja klienta graficznego.
W przypadku serwera mamy do wyboru
dwa rozwiązania: instalację Subversion w postaci modułu serwera Apache lub w postaci niezależnego
programu svnserve.
W przewodniku tym omówię trzy spośród
powyższych przypadków w systemie Windows.
Zrezygnuję z instalacji serwera Subversion w postaci
procesu svnserve. Program svnserve nie jest
dostępny dla platformy Windows. Do instalacji
potrzebne będą pliki {stala}svn-1.4.2-setup.exe{/stala} oraz
{stala}TortoiseSVN-1.4.2.8580-win32-svn-1.4.3.msi{/stala}. Znajdziesz
je pod adresem http://subversion.tigris.org
Klient tekstowy
Instalacja klienta tekstowego
Uruchom program instalacyjny svn-1.4.2-setup.
exe. Po zakończeniu instalacji, w systemie pojawi
się folder {stala}C:\\Program Files\\Subversion{/stala}.
Teraz uruchom wiersz poleceń. Wywołaj opcję
Start > Uruchom i wpisz polecenie cmd. W wierszu
poleceń wywołaj komendę svn:
C:\>svn
Jeśli ujrzysz komunikat \”Uzyj svn help by otrzymać podstaowe instrukcje\” to znaczy, że instalacja powiodła się.
Tekstowy klient Subversion jest zainstalowany
i gotowy do pracy.
Pobieranie oprogramowania z poziomu klienta tekstowego
Gdy klient tekstowy jest zainstalowany, możesz
przystąpić do pobierania z sieci oprogramowania.
Utwórz folder {stala}C:\\svn{/stala} i przejdź do niego:
C:
cd \
mkdir svn
cd svn
W celu pobrania najnowszej wersji pakietu
WordPres wydaj komendę:
svn checkout http://svn.automattic.com/wordpress/trunk wordpress
Ostatni z parametrów, wordpress, jest nazwą
foldera, do którego zostanie zapisana kopia plików
z serwera. Po wydaniu powyższego polecenia powstanie
folder {stala}c:\\svn\\wordpress{/stala}, w którym znajdzie się najnowsza
wersja popularnego systemu do blogowania.
Następnie pobierz aplikację phpMyAdmin:
svn checkout https://svn.sourceforge.
net/svnroot/phpmyadmin/tags/STABLE/
phpMyAdmin phpMyAdmin-stable
oraz Phing, Creole i Propel:
svn checkout http://svn.phing.info/
trunk phing
svn checkout http://svn.phpdb.org/
creole/trunk creole
svn checkout http://svn.phpdb.org/
propel/trunk propel
TortoiseSVN – graficzny klient Subversion
Instalacja TortoiseSVN
Instalacja programu TortoiseSVN sprowadza się
do uruchomienia programu instalacyjnego {stala}TortoiseSVN-
1.4.2.8580-win32-svn-1.4.3.msi{/stala} i zrestartowania
komputera.
Pobieranie oprogramowania
Utwórz folder {stala}D:\\svn\\propel{/stala} przeznaczony na
pobranie z serwera SVN najnowszej wersji kodu
oprogramowania propel. Kliknij na folderze propel
prawym przyciskiem myszki i z menu kontekstowego
wybierz opcję SVN Checkout…
W oknie dialogowym, w polu URL of repository,
wprowadź adres:
http://svn.phpdb.org/propel/trunk
Naciśnięcie przycisku OK rozpocznie proces
pobierania danych z serwera. Okno dialogowe przedstawia komunikaty
wyświetlane przez program TortoiseSVN podczas
pobierania.
Po zakończeniu pobierania folder propel oraz
zawarte w nim foldery otrzymają zieloną ikonę
oznaczającą, że ich zawartość jest zsynchronizowana
z zawartością serwera SVN.
Instalacja serwera Subversion
Instalacja serwera Subversion w postaci modułu
Apache\’a wymaga oczywiście działającego serwera
Apache. Poniższą procedurę przetestowałem,
korzystając z Apache w wersji 2.0.59. Oczywiście
procedura ta jest niezależna od platformy i może być
wykonana zarówno w systemie Windows, jak i u*ix.
Moduł serwera Apache
Pliki {stala}mod_authz_svn.so{/stala} oraz {stala}mod_dav_svn.so{/stala}
skopiuj z folderu C:\\Program Files\\Subversion\\bin
do folderu {stala}C:\\Program Files\\Apache Group\\Apache2\\modules{/stala}. Następnie w pliku httpd.conf dodaj
moduły:
LoadModule dav_module modules/mod_dav.so
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
Jeśli korzystasz z instalatora {stala}svn-1.4.2-setup{/stala}.
exe, to powyższe wpisy zostaną dodane automatycznie
i będą wskazywały na moduły z folderu {stala}C:\\Program Files\\Subversion\\bin{/stala}:
LoadModule dav_module modules/mod_dav.so
LoadModule dav_svn_module \"C:/Program Files/Subversion/bin/mod_dav_svn.so\"
LoadModule authz_svn_module \"C:/Program Files/Subversion/bin/mod_authz_svn.so\"
Teraz utwórz folder {stala}C:\\svnrepository{/stala} przeznaczony
na projekty, które mają być współdzielone
przez użytkowników systemu Subversion:
c:
cd \
mkdir svnrepository
cd svnrepository
Utwórz pierwszy projekt. W folderze svnrepository
wydaj komendę svnadmin, tworzącą nowy
projekt o nazwie book:
C:\svnrepository>svnadmin create book
Polecenie to utworzy folder {stala}C:\\svnrepository\\book{/stala}. W folderze tym nie wolno ręcznie umieszczać
żadnych danych. Jedyną metodą manipulacji plikami
projektu jest korzystanie z klienta Subversion.
Jeśli korzystasz z programu TortoiseSVN, to
nowe repozytorium możesz utworzyć, wywołując
opcję >TortoiseSVN > Create repository here.
Polecenie svnadmin domyślnie tworzy repozytoria
oparte o BDB. W przypadku TortoiseSVN ujrzysz
okno dialogowe, pozwalające na wybór rodzaju
repozytorium.
Ponownie otwórz edytorem tekstowym plik
httpd.conf i dodaj w nim wpis odpowiedzialny za
udostępnianie projektu book:
DAV svn SVNPath
\"C:/svnrepository/book\"
Projekt book będzie widoczny pod adresem
{stala}http://localhost/svnbook{/stala}.
Zrestartuj serwer Apache i odwiedź adres
{stala}http://localhost/svnbook{/stala}. Jeśli ujrzysz witrynę potwierdzającą rejestrację, oznacza to, że instalacja przebiegła
pomyślnie. Serwer Subversion jest zainstalowany,
a projekt book – gotowy do użycia. Nowo
utworzony projekt jest oznaczony numerem 0.
Uwaga: do tak skonfigurowanego projektu
wszyscy mają pełny dostęp!
Korzystanie z systemu Subversion – klient tekstowy
Pobieranie całego projektu book
Utwórz folder, w którym chcesz umieścić kopię
projektu book, np. {stala}D:\\projects:{/stala}
D:
cd \
mkdir projects
cd projects
W folderze tym wydaj polecenie:
D:\projects>svn checkout http://localhost/svnbook book
Po wydaniu tego polecenia pojawi się folder
{stala}D:\\projects\\book{/stala} zawierający kopię projektu book.
Uwaga, w folderze book będą znajdowały się
foldery .svn. Folderów tych nie wolno usuwać ani
modyfikować.
Dodawanie nowego pliku
Utwórz nowy plik o nazwie D:\\projects\\svnbook\\
book.txt i wpisz do niego tekst \”Lorem
ipsum…\”.
Plik book.txt dodaj do projektu. Służy do tego
komenda svn add:
D:\projects>svn add svnbook\book.txt
Odwiedź witrynę {stala}http://localhost/svnbook{/stala}.
Dodany plik nie jest widoczny na serwerze.
Operacja dodawania plików i folderów do projektu
jest operacją lokalną. Nowe pliki będą widoczne
na serwerze dopiero po scaleniu kopii roboczej
projektu z zawartością serwera.
Scalanie zmian
Zatwierdź wykonane zmiany i prześlij bieżącą
wersję plików na serwer.
D:\projects>svn commit book -m \"Nowy plik\"
Odwiedź witrynę {stala}http://localhost/svnbook{/stala}.
Projekt otrzyma nowy numer rewizji. Na witrynie
będzie widoczny dodany plik book.txt.
Zajrzyj do folderu {stala}C:\\svnrepository\\book{/stala}. Nie
ujrzysz tam pliku book.txt. Wszelkie pliki projektu
są przechowywane w bazie danych. Nie modyfikuj
żadnych plików wewnątrz folderu {stala}C:\\svnrepository\\book{/stala}. Jedyną metodą modyfikacji plików folderu
jest korzystanie z klienta SVN oraz programu
administracyjnego svnadmin.
Dodawanie wielu plików
Utwórz na dysku jeszcze kilka plików i folderów
z dowolna zawartością:
D:\projects\book\ch1.txt
D:\projects\book\ch2.txt
D:\projects\book\images\info.txt
D:\projects\book\images\copyright.txt
stosując standardowe metody (np. opcje Nowy >
Dokument tekstowy oraz Nowy > Folder w oknie
eksploratora Windows). Wszystkie utworzone pliki
dodaj do projektu:
D:\projects>svn add book\*
Uaktualnij pliki na serwerze:
D:\projects>svn commit book\* -m \"Nowe pliki\"
a następnie wczytaj projekt w przeglądarce
internetowej. Projekt otrzyma nowy numer rewizji i będzie zawierał pliki ch1.txt, ch2.txt, images/info.txt oraz images/copyright.txt.
Korzystanie z systemu Subversion – klient TortoiseSVN
Utwórz nowy projekt o nazwie article. Najpierw
wydaj polecenie:
C:\svnrepository>svnadmin create article następnie dodaj wpis w pliku httpd.conf:
DAV svn
SVNPath \"C:/svnrepository/article\"
Pobieranie całego projektu article
Korzystając z programu TortoiseSVN kolejno:
- utwórz folder {stala}D:\\projects\\article{/stala}
- kliknij na folderze {stala}D:\\projects\\article{/stala} prawym
przyciskiem myszy - z menu kontekstowego wybierz operację SVN
Checkout… - podaj adres URL repozytorium: {stala}http://localhost/svnarticle{/stala}
Dodawanie nowego pliku
W folderze {stala}D:\\projects\\article{/stala} utwórz plik section-1.txt. Kliknij nazwę pliku prawym przyciskiem myszy, po czym z menu kontekstowego wybierz
opcję TortoiseSVN > Add.
Przesyłanie zmian na serwer
W celu przesłania na serwer wszystkich zmian
wykonanych w projekcie article, wykorzystaj opcję
SVN Commit z menu kontekstowego. W oknie dialogowym, jakie ujrzysz,
masz możliwość podejrzenia wszystkich dokonanych
zmian oraz wprowadzenia wiadomości
opisującej zmiany.
Zwróć uwagę, że program TortoiseSVN w pełni
integruje się z eksploratorem Windows i oznacza
pliki wewnątrz projektów różnymi ikonami. Ikona z plusem w kolorze niebieskim oznacza, że plik został
dodany do projektu, ale jeszcze nie został przesłany
na serwer. Ikona z czerwonym wykrzyknikiem oznacza, że
w projekcie article zaszły zmiany, które nie zostały
przesłane na serwer. Natomiast ikona z zieloną strzałeczką oznacza, że projekt zapisany na dysku jest
zsynchronizowany z projektem na serwerze.
Autoryzacja użytkowników SVN
Jeśli serwer Subversion jest zainstalowany
w postaci modułu serwera Apache, to do autoryzacji
użytkowników SVN możesz wykorzystać
standardowe mechanizmy dostępne w ramach
protokołu HTTP.
Utwórz nowy projekt o nazwie project-a:
C:\svnrepository>svnadmin create project-a
Następnie utwórz plik z kontami dostępu do
projektu. Wykorzystaj program htpasswd zawarty
w folderze {stala}C:\\Program Files\\Apache Group\\Apache2\\bin{/stala}. Najpierw wejdź do folderu bin:
c:
cd \
cd \"Program Files\Apache Group\Apache2\bin\"
po czym wydaj polecenie:
htpasswd -cm /svn-auth-file gajdaw
New password: ******
Re-type new password: ******
Adding password for user gajdaw
htpasswd -m /svn-auth-file gajdat
New password: *****
Re-type new password: *****
Adding password for user gajdat
W ten sposób utworzysz (flaga -c w pierwszym
wywołaniu) plik o nazwie {stala}C:\\svn-auth-file{/stala} zawierający
opis dwóch kont. Konta nazywają się gajdaw
oraz gajdat i posiadają podane przez ciebie hasła.
Dzięki użyciu flagi -m, plik zawiera tylko skróty
MD5 haseł. Podejrzenie zawartości pliku nic nie
daje potencjalnym włamywaczom.
Plik {stala}C:\\svn-auth-file{/stala} przenieś do folderu {stala}C:\\Program Files\\Apache Group\\Apache2\\conf\\{/stala}.
Teraz w pliku konfiguracyjnym httpd.conf wprowadź
dyrektywy konfigurujące dostęp do projektu:
DAV svn
SVNPath \"C:/svnrepository/project-a\"
AuthType Basic
AuthName \"Project A\"
AuthUserFile \"C:/Program Files/Apache Group/Apache2/conf/svn-auth-file\"
Require valid-user
po czym zrestartuj serwer Apache. Jeśli teraz
spróbujesz odwiedzić projekt na serwerze SVN
korzystając z przeglądarki internetowej, to ujrzysz
okno dialogowe autoryzacji HTTP. Musisz podać konto i hasło ustalone
programem htpasswd.
Oczywiście autoryzacji będzie podlegał także
dostęp za pośrednictwem klientów: tekstowego
i graficznego. Ilustracja 17 przedstawia okno
dialogowe autoryzacji dostępu wyświetlane przez
program TortoiseSVN.
Kopiuj-modyfikuj-scal
Pamiętaj, że praca w systemie Subversion
podlega modelowi kopiuj-modyfikuj-scal.
Kopiuj
Najpierw wykonaj kopię plików z serwera.
Proces ten polega na przekopiowaniu aktualnej
wersji oprogramowania na twój dysk. Otrzymana
kopia jest niezależna od serwera: możesz na niej
pracować, wykonując dowolne zmiany. Kopię
wykonuje się poleceniem checkout (skrót: co):
svn checkout http://...
svn co http://...
klienta tekstowego lub przy użyciu opcji SVN
Checkout… programu TortoiseSVN.
Modyfikuj
Modyfikacje plików projektu możesz wykonywać
dowolnym edytorem. Otwierasz plik, zmieniasz
zawartość i zapisujesz. Nie ma znaczenia oprogramowanie,
jakie stosujesz do edycji pliku, rozszerzenie
pliku czy ilość zmian. Plik możesz otworzyć
wielokrotnie i zmieniać w dowolnych miejscach.
Jeśli chcesz do projektu dodać nowe pliki, nie
możesz tej operacji wykonać w standardowy sposób.
Pliki utworzone eksploratorem Windows nie
są automatycznie dodawane do projektu, nawet
jeśli są umieszczone w jednym z folderów kopii
roboczej. Do tego służą polecenia add:
svn add ...
oraz opcja TortoiseSVN > Add klienta graficznego.
Po utworzeniu nowego pliku lub folderu musisz
koniecznie wykonać operację svn add lub Tortoise-
SVN > Add.
Podobne ograniczenia dotyczą wszystkich operacji
na plikach i katalogach. Operacje na plikach
i katalogach należy wykonywać poleceniami:
- svn add – dodawanie plików, katalogów i linków
- svn copy – kopiowanie plików i folderów
- svn delete – usuwanie plików i folderów
- svn mkdir – tworzenie nowego folderu
- svn move – przenoszenie pliku lub folderu
Scal
Scalenie lokalnych zmian z wersją przechowywaną
na serwerze wykonasz poleceniem commit
(skrót ci):
svn commit ...
svn ci ...
lub korzystając z opcji SVN Commit programu
TortoiseSVN.
Dodatkowe operacje i możliwości Subversion
Update
Jeśli pracowałeś już na danym projekcie,
wówczas nie ma potrzeby wykonywania operacji
checkout. W takim przypadku wystarczy operacja
update:
svn update ...
dostępna w postaci opcji SVN Update programu
TortoiseSVN. Operacja ta gwarantuje, że
lokalna kopia robocza projektu będzie zgodna
z zawartością na serwerze.
Import
Szczególnym sposobem dodawania plików do
projektu jest import. Operacja ta jest przydatna
w początkowej fazie pracy nad projektem w systemie
SVN. Jeśli projekt, który składa się już z wielu
plików i folderów, zamierzasz poddać kontroli
systemem SVN, wykorzystaj operację import.
Najpierw utwórz nowy pusty projekt SVN
o nazwie template, przechowywany w folderze
{stala}C:\\svnrepository\\template{/stala} i dostępny poprzez URL
{stala}http://localhost/svntemplate{/stala}.
Następnie kliknij prawym klawiszem myszy
na folderze zawierającym potrzebne pliki. Z menu
kontekstowego wybierz operację TortoiseSVN >
Import.
Zostanie wyświetlone okno dialogowe importu. Wprowadź w nim adres
URL, pod jakim projekt będzie dostępny: {stala}http://localhost/svntemplate{/stala}.
Na zakończenie wczytaj w przeglądarce internetowej
adres {stala}http://localhost/svntemplate{/stala}. Ujrzysz
projekt o numerze rewizji 1, zawierający wszystkie
pliki, jakie znajdowały się wewnątrz folderu.
Podczas korzystania z klienta tekstowego import
przeprowadza się, korzystając z komendy:
svn import ...
Operacja import powoduje dodanie wszystkich
plików i folderów do projektu (czyli wykonanie
operacji add) i przesłanie wprowadzonych zmian
na serwer (czyli wykonanie operacji commit).
Właściwości
Każdy plik i folder podlegający zarządzaniu
przez system SVN może zostać wzbogacony
o właściwości. Każda właściwość jest parą: nazwa
– wartość, przy czym jeden plik lub folder może
posiadać dowolnie wiele właściwości.
Pewnym szczególnym przypadkiem właściwości
są słowa kluczowe: zmienne, zamieniane na
specjalne wartości przez system SVN. Dostępnymi
słowami kluczowymi są:
$Date$
$Revision$
$Author$
$HeadURL$
$Id$
Użycie w pliku napisu $Date$ powoduje
wstawienie przez system SVN daty ostatniej modyfikacji.
Zmienna {stala}$Revision${/stala} jest zamieniana
numerem rewizji, {stala}$Author${/stala} – nazwą użytkownika,
{stala}$HeadURL${/stala} – adresem URL pliku, zaś {stala}$Id${/stala}
– kombinacją kilku powyższych zmiennych.
Jeśli chcesz stosować w pliku powyższe
słowa kluczowe, musisz nadać danemu plikowi
właściwość svn:keywords. Wykonasz to, wydając
polecenie:
svn propset svn:keywords
\"Date Revision Author HeadURL Id\"
index.html
lub stosując opcję TortoiseSVN > Properties
w kliencie graficznym Słowa kluczowe, które mają
podlegać wymianie, wprowadzasz (oddzielone
spacjami) jako wartość właściwości. Na przykład
polecenie:
svn propset svn:keywords \"Date Author\"
index.html
oznacza, że tylko data i nazwa użytkownika będą
podlegały wymianie.
Jeśli w pliku HTML wprowadzisz komentarz:
po czym nadasz plikowi właściwość svn:keywords,
włączając wszystkie słowa kluczowe, to po kolejnym
przesłaniu plików na serwer (operacją commit)
oprogramowanie SVN w miejsce zmiennych
wstawi konkretne wartości, np.:
Dodatkowe możliwości klienta graficznego
Program TortoiseSVN pozwala na bardzo wygodne
przeglądanie zmian, rewizji czy też doprowadzenie
zawartości folderu do podanego numeru
rewizji lub rozstrzyganie konfliktów. Wykres rewizji dostępny jest po wybraniu
opcji TortoiseSVN > Revision graph.
Opcja TortoiseSVN > Update to revision umożliwia szybkie doprowadzenie zwartości lokalnego folderu do stanu z zadanej
rewizji.
Okno dialogowe TortoiseSVN > Show log
wyświetla listę wykonanych zmian,
podając numer rewizji, daty, autora oraz komunikaty.
Natomiast opcja TortoiseSVN > Repo browser
pozwala na wygodne przeglądanie
zawartości repozytorium w stanie dowolnej rewizji.
Do rozstrzygania konfliktów służy specjalny
edytor TortoiseMerge. W przypadku wystąpienia
konfliktów, edytor ten wyświetla obok siebie obie
wersje plików powodujących konflikt i pozwala na
wprowadzanie modyfikacji. Kolidujące miejsca są
oznaczane specjalnymi kolorami.
Codzienna praca z systemem SVN
Praca w systemie SVN sprowadzi się do
cyklicznego powtarzania pewnych poleceń.
Najpierw, w zależności od twojej roli w projekcie,
wykonasz bądź instalację nowego projektu
(np. wykorzystując operację svn import), bądź
pobierzesz aktualny stan projektu (operacja svn
checkout). Podczas codziennej pracy będziesz
wykonywał:
- operację svn update w celu pobrania najnowszych
zmian w projekcie - poddasz dowolne pliki edycji oraz wykonasz
liczne operacje na plikach i katalogach (svn add,
svn delete, svn move, itd.) - wykonane zmiany prześlesz na serwer (svn
commit)
Pamiętaj, że update oraz commit są operacjami
niezależnymi. Wykonanie update nigdy
nie pociąga za sobą automatycznego wykonania
commit i na odwrót: wykonanie commit nigdy
nie pociąga za sobą automatycznego wykonania
update.
Podsumowanie
System SVN jest zaskakująco prosty w instalacji.
Wygoda korzystania z aplikacji TortoiseSVN jest
również zaskakująca. Wszystkie niezbędne opcje są
dostępne w menu kontekstowym, co niesamowicie
poprawia komfort użycia. Zaś ikony informujące
o stanie projektu sprawiają, że właściwie w interfejsie
programu TortoiseSVN nic poprawić już się
nie da.
Wprawdzie hosting poważnych projektów,
które mają być dostępne w internecie lepiej
prowadzić na systemach rodziny unix, jednak
z uwagi na prostotę instalacji i dostępność
na platformie Windows zarówno serwera,
jak i klienta, system SVN ma szanse stać się
narzędziem codziennej pracy nie tylko programistów
pracujących grupowo.
Jak wielokrotnie
zaznaczają autorzy w książce pt. \”Version
Control with Subversion\”, system SVN był od
samego początku projektowany tak, by obszar
jego zastosowań obejmował wszelkie prace,
których efekty są zapisywane w postaci plików
i folderów. Subversion pozwala na zarządzanie
wersjami plików tworzących witrynę WWW,
artykuł, książkę, album fotograficzny, a nie tylko
kod źródłowy.
Publikując repozytoria Subversion w internecie,
pamiętaj, że do pełnego bezpieczeństwa systemu
nie wystarczy prosta autoryzacja HTTP. Konieczne
jest również zastosowanie SSL.
Pomocne adresy
1. Strona domowa Subversion
http://subversion.tigris.org
Strona domowa Subversion to najlepsze
źródło informacji na temat tego narzędzia,
a także medot pracy z systemami kontroli wersji
w ogóle.
2. Książka pt. „Version Control with
Subversion”
3. Systemy kontroli wersji w Wikipedii
http://pl.wikipedia.org/wiki/System_kontroli_
wersji
4. Opis Subversion w Wikipedii
http://pl.wikipedia.org/wiki/Subversion
5. Artykuł Borysa Musielaka pt. „Subversion
dla każdego”
http://jakilinux.org/aplikacje/subversion-
-dla-kazdego
6. Artykuł Tomasza Przechlewskiego pt.
„Szybkie wprowadzenie do Subversion”
http://www-stary.gust.org.pl/e-learning/svn-
-intro/svn-qs.html