27 luty 2006

Aplikacje, które kocham - Subversion - Drogi Pamiętniczku…

System kontroli wersji to niezastąpiona aplikacja praktycznie dla każdej osoby pracującej więcej z komputerem. Szkoda więc, że traktuje je się jedynie jako narzędzie dla programistów i mało kto poza nimi, ma jakiekolwiek pojęcie, że coś takiego wogóle istnieje.

O co chodzi? System kontroli wersji to taki program, który pamięta jak wyglądały dane pliki w danym okresie czasu i pozwala ewentualnie cofnąć plik do wersji np. sprzed miesiąca czy porównać go z nią. Jeśli kiedykolwiek w trakcie pracy nad czymś popełniłeś błąd, który potem musiałeś długo cofać - takie narzędzie jest Ci potrzebne.

Tutaj mowa będzie konkretnie o Subversion - nie dlatego, że uważam je za najlepsze dostępne do tego celu narzędzie, ale dlatego że sam go używam i przynajmniej do “domowych” zastosowań nadaję się świetnie i wystarcza w zupełności.

Jeśli planujemy używać programu tylko na naszym jednym, lokalnym kompie nie potrzeba żadnych serwerów, cudów, bajerów, wystarczy zainstalować (apt-getnąć, emergnąć, setupexecnąć) Subversion i wykonać parę prostych czynności, żeby zacząć czerpać z niego korzyści. Robimy sobie więc jakiś katalog na repozytoria np. /home/ktostam/svn, albo /var/svn. Następnie, zakładajamy repozytorium dla naszego danego projektu:

svnadmin create /var/svn/nazwa_projektu

Teraz trzeba zrobić kopię roboczą, repozytorium, czyli tą, na której będziemy pracować:

svn co file:///var/svn/nazwa_projektu/katalog_z_wersja_robocza

W katalogu z wersją roboczą umieszczamy nasze pliki, po czym dodajemy je do repozytorium:

svn add *.c
svn add *.h
svn add *.html
svn add *.doc

Itp. itd. W każdej chwili możemy też zobaczyć listę już dodanych plików:

svn list

Jeśli chcemy dodać już istniejący katalog o nazwie “cos” robimy po prostu tak:

svnadmin create /var/svn/cos
svn co file:///var/svn/cos
svn add cos/*

Na koniec dokonujemy “wrzutu” obecnej wersji katalogu roboczego do repozytorium (polecenia wykonujemy oczywiście po przejściu do tego katalogu):

svn commit

Subversion poprosi nas o krótki opis wersji, po czym doda kolejną “rewizję” (wersje) do repozytorium. I wreszcie na koniec, updajetujemy naszą wersją roboczą do najnowszej (chodzi głównie o zmiane numerka wersji, bo przecież pliki mamy aktualne):

svn update

Ostatnie dwa polecenia powtarzamy za każdym razem, kiedy wprowadzimy do naszych plików jakieś znaczące zmiany, które chcemy żeby zostały zapisane. Później chcąć cofnąć się możemy napisać:

svn log

I ukaże nam się lista wszystkich wersji naszego projektu, wraz z opisami. Wybieramy interesującą nasz wersję i pobieramy na dysk:

svn -r5 co file:///var/svn/nazwa_projektu

I otrzymujemy 5 wersję w katalogu “nazwa_projektu” na naszym dysku twardym.

Możemy też obejrzeć jak zmienił się dany plik w porównaniu z poprzednią wersją:

svn diff jakisplik

Albo z jakaś jeszcze starszą:

svn -r1 diff jakisplik

A także porównać pliki z różnych wersji samego repozytorium - i tak:

svn -r3:5 diff jakisplik

porównuje wersję 3 z 5.

Niektórzy tak sobie cenią komfort cofnięcia się w czasie w każdym momencie, że w systemie kontroli wersji trzymają cały katalog domowy. I nie jest to głupi pomysł, szczególnie jeśli będzie to repozytorium nie na własnym komputerze, a gdzieś indziej, także gratisowo dostajemy jeszcze backup naszych plików. Wydłuża się wtedy troche etap konfiguracji, ale samo użycie Subversion wygląda prawie identycznie jak przed chwilą widzieliśmy.

Linki:

http://subversion.tigris.org/ - Oficjalna strona Subversion
http://svnbook.red-bean.com/ - Dostępna darmo książka o Subversion
http://esvn.umputun.com/ - Graficzny frontend w Qt
http://www.xsteve.at/prg/vc_svn/index.html - Wsparcie dla Subversion do Emacsa
http://rapidsvn.tigris.org/ - Frontend w wxWindows
http://subclipse.tigris.org/ - Interfejs do Eclipse
http://tortoisesvn.tigris.org/ - Integracja explorera Windows z Subversion

Serwisy oferujące darmowy hosting repozytoriów Subversion:

http://www.cvsdude.org/
http://www.berlios.de/
https://opensvn.csie.org/

Dodaj do del.icio.us | Dodaj do wykop.pl

Komentarze ():

plucho, 15 marzec 2006, 3:03 pm

W styczniu 2006 miałem okazję przeprowadzić wykład/warsztaty na Zimowisku Linuksowym TLUG pod tytułem “Subversion - Wykorzystanie i administracja repozytorium”.
Całość kierowana do osób rozpoczynających pracę z tym systemem kontroli wersji. Oprócz tego wspomniałem o bardziej zaawansowanych możliwościach - dla zainteresowanych i dociekliwych :)
Prezentację udostępniłem pod adresem: http://linux.gda.pl/spotkania/sp_13/svn.pdf

Starsza siostra, 11 maj 2006, 4:05 pm

I ja się o tym dopiero teraz dowiaduję? Nieładnie :)

luk4sz, 23 kwiecień 2007, 2:28 pm

“svn co file:///var/svn/nazwa_projektu/katalog_z_wersja_robocza”
nie powinno byc tak?:
svn co file:///var/svn/nazwa_projektu katalog_z_wersja_robocza

Skomentuj