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