Elementy Subversion

Subversion - w skrocie SVN - to system wersjonowania plikow, ktory ma byc nastepca CVS. Jedna z podstawowych roznic jest to, ze kazda zmiana powoduje zmiane numeru wersji calego drzewa, a nie pojedynczego pliku. Pelne informacje mozna znalezc w ksiazce-online, na tej stronie.

Aktualnie istnieje repozytorium SVN dla kodu DAQa. W przyszlosci doda sie repozytorium dla Pimana i Mounta.

Repozytorium miesci sie na heplx47, w /opt/pi/svn/daq, przy czym bezposredni dostep do niego ma jedynie user svn. Reszta musi korzystac z klientow svn.

Wielu istotnych informacjimoze dostarczyc svn --help. Oczywiscie na lokalnym komputerze musi byc zainstalowany klient subversion, aby z niego korzystac.

1) Aby sciagnac po raz pierwszy pliki z repozytorium do katalogu, ktorym aktualnie jestesmy nalezy wpisac polecenie:

svn checkout svn://heplx47/opt/pi/svn/pi/trunk/daq .

(Lub dla kopii ze starym, na pewno dzialajacym mountem to samo dla sciezki: /opt/pi/svn/pi/tags/LCO-2006.03.17/daq)

Lewa kolumna wypisanego wyniku oznacza status pliku, natomiast prawa jego nazwe i sciezke. W tym wypadku po lewej stronie powinny byc same litery A.

W tym momencie svn powinien zapytac o haslo. Jezeli pyta dla zlego usera, to nalezy nacisnac enter - po tym powinien zapytac sie o usera.

2) Aby zaktualizowac lokalna wersje plikow (na swoim komputerze), nalezy zrobic:

svn update

w katalogu do ktorego sciagnelismy pliki. SVN sam sie zorientuje, skad ma sciagac uaktualnienie.

Tym razem moze pojawic sie wiecej liter w prawej kolumnie:

Przed kazdym Commitem (nizej) warto jest najpierw zrobic u siebie Update.

3) Aby przeslac swoje zmiany w plikach do repozytorium, nalezy w aktualnym katalogu wpisac polecenie:

svn commit plik.c

gdzie plik.c to plik, ktory zostal zmieniony. Tak jak w przypadku upgrade, svn powinien wiedziec, gdzie ma to wyslac. W celu wyslania wszystkich zmian z aktualnego katalogu naraz, nalezy wydac samo polecenie:

svn commit

bez zadnych dodatkowych parametrow.

4) Inne...

Oczywiscie mozna tworzyc nowe repozytoria i importowac do nich cale projkty (co trzeba bedzie zrobic w przypadku Pimana i Mounta), ale przed uczynienem tego prosze o kontakt ze mna. Jestem samozwanczym adminem SVNa w projekcie Pi of the Sky :)

5) Aby wylistowac historie zmian dotyczacych jednego pliku lub katalogu

svn log sciezka_do_pliku_lub_katalogu

6) Aby zobaczyc jakie zmiany zaszly w pliku/katalogu miedzy dwoma rewizjami:

svn diff -r NUMER_REWIZJI1:NUMER_REWIZJI2 sciezka_do_pliku_lub_katalogu

Ew. mozna wpisac tylko NUMER_REWIZJI1, wtedy porownywane sa roznice miedzy ta wersja, a wersja aktualna

Lech Wiktor Piotrowski