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/
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