Superszybki Przewodnik

Uprasza się o skierowanie oparć foteli pionowo w górę oraz sprawdzenie czy stoliki są schowane. Uczestnicy lotu proszeni o przygotowanie się do startu….

Poniżej przedstawiamy ci szybki przewodnik, który przeprowadzi //What follows is a quick tutorial that walks you through some Cię przez podstawowe aspekty konfiguracji i obsługi Subversion. Po przeczytaniu //configuration and operation. When you finish go powinieneś rozumieć do czego typowo wykorzystywany jest ///it, you should have a general understanding of Subversion's Subversion.

[Notatka] Notatka

Przykłady wykorzystane w tym dodatku zakładają, że posiadasz svn, klienta linii poleceń Subversion, oraz svnadmin, narzędzie administracyjne, gotowe do użycia w systenie uniksowym. (Ten przewodnik równie dobrze sprawdza się w pracy z wierszem poleceń systemu Windows, pod warunkiem że dokonasz odpowiednich normalizacji.) Zakładamy też że korzystasz z Subversion 1.2 lub późniejszego (użyj poleceniasvn --version aby to sprawdzić.)

Subversion przechowyje wszelkie dane wersjonowania w centralnym repozytorium. Aby zacząć, utówrz nowe:

$ svnadmin create /var/svn/repos
$ ls /var/svn/repos
conf/  dav/  db/  format  hooks/  locks/  README.txt

To polecenie utworzy nowy katalog, /var/svn/repos, który zawiera repozytorium Subversion. Zawiera on (między innymi) zbiór plików bazodanowych. Oznacza to że nie ujrzysz swoich wersjonowanych plików zagladając do niego. Po więcej informacji na temat repozytorium jego tworzenia oraz obsługi, zajrzyj do Rozdział 5, Repository Administration.

Subversion nie posiada wbudowanej koncepcji „projektu.” Repozytorium jest po prostu wirtualnym wersjonowanym systemem plików, rozbudowanym drzewem, które może przechowywać cokolwiek chcesz. Niektórzy administratorzy wolą przechowywać tylko jeden projekt w repozytorium, inni natomiast przechowują wiele projektów w jednym repozytorium poprzez umieszczanie ich w podkatalogach. Omawaiamy wady i zalety obydwu podejść w rozdziale „Planning Your Repository Organization”. Niezależnie od wybranego rozwiązania, repozytorium zarządza jedynie plikami i katalogami, a więc „projekt” to zwykły katalog, któremu człowiek nadaje takie znaczenie. Pamiętaj zatem, że mimo wielokrotnych odniesień do terminu „projekt” w tej książce, mamy na myśli pewien katalog (lub ich zbiór) w repozytorium.

W poniższym przykładzie zakładamy, że masz już jakiś projekt (zbiór plików i folderów), który chciałbyś zaimportować do świeżo utworzonego repozytorium. Czynność tą rozpocznij od zorganizowania plików w jednym katalogu, który nazwiesz moj_projekt (lub w dowolnie inny sposób). Z powodów wytłumaczonych w rodziale Rozdział 4, Branching and Merging, na strukturę katalogów powinny składać się trzy katalogi: branches, tags, oraz trunk. Katalog trunk powinien zawierać wszystkie pliki projektu, natomiast branches i tags powinny pozostać puste:

/tmp/moj_projekt/branches/
/tmp/moj_projekt/tags/
/tmp/moj_projekt/trunk/
                     foo.c
                     bar.c
                     Makefile
                     …

Podkatalogi branches, tags, i trunk w rzeczywistości nie są wymagane przez Subversion. Są jedynie popularną konwencją nazewnictwa, która później prawdopodobnie przypadnie ci do gustu.

Kiedy już przygotujesz swoje dane, zaimportuj je do repozytorium poleceniem svn import (zobacz „Wprowadzanie danych do repozytorium”):

$ svn import /tmp/moj_projekt file:///var/svn/repos/moj_projekt -m "initial import"
Adding         /tmp/moj_projekt/branches
Adding         /tmp/moj_projekt/tags
Adding         /tmp/moj_projekt/trunk
Adding         /tmp/moj_projekt/trunk/foo.c
Adding         /tmp/moj_projekt/trunk/bar.c
Adding         /tmp/moj_projekt/trunk/Makefile
…
Committed revision 1.
$ 

W tym momencie repozytorium zawiera dane i ich strukturę. Tak jak już jednak wspominaliśmy, nie będziesz w stanie jej ujrzeć poprzez bezpośredni podgląd repozytorium - wszystko przechowywane jest w bazie danych. To w niej znajduje się wirtualny system plików zawierający nadrzędny katalog moj_projekt z podkatalogami i danymi jakie w nim umieściłeś.

Zauważ, że oryginalny folder /tmp/moj_projekt pozostał nienaruszony - Subversion nic z nim nie łączy. ochotę, możesz go usunąć). Żeby rozpocząć prace na danych znajdujących się w repozytorium musisz utworzyć nową „kopię roboczą”. Wykonaj „check out” kopii roboczej katalogu moj_projekt/trunk znajdującego się w repozytorium:

$ svn checkout file:///var/svn/repos/moj_projekt/trunk moj_projekt
A  moj_projekt/foo.c
A  moj_projekt/bar.c
A  moj_projekt/Makefile
…
Checked out revision 1.

Posiadasz teraz osobistą kopię repozytorium w nowym katalogu o nazwie moj_projekt. Możesz wyedytować pliki w swojej kopii roboczej, po czym zapisać zmiany („commit”) z powrotem do repozytorium.

Jeśli chcesz pełnego przewodnika po możliwościach swojej kopii roboczej, proszę przeczytaj Rozdział 2, Podstawy użytkowania Subversion.

W tym miejscu masz możliwość udostępnienia swojego repozytoirum innym w sieci. Spójrz do Rozdział 6, Server Configuration, przeczytasz tam o dostępnych różnego rodzajach procesach serwerów oraz sposobach ich konfiguracji.