Systemów kontroli wersji jest dostępnych na rynku wiele i nie będę się starał nikogo przekonać do tego czy innego rozwiązania. Każdy system ma swoje wady i zalety, a w większości przypadków wybieramy to co nam najbardziej odpowiada, albo po prostu jest to kwestia przyzwyczajenia. Osobiście od dawna już korzystam z Subversion czyli w skrócie poczciwego SVN’a i o nim chciałem paroma przemyśleniami się podzielić.

Tak jak już wspomniałem każdy system ma swoje wady i zalety. Może nie tyle o wadach co pewnych brakach chciałem, dla potomnych (albo raczej własnej sklerozy), napisać. W codziennym użyciu najbardziej doskwiera mi brak dwóch funkcji:
– automatycznego dodawania się i kasowania plików skasowanych/dodanych lokalnie do repozytorium
– możliwości wykonania eksportu tylko tych plików które zostały zmienione pomiędzy jakimiś rewizjami (najczęściej pomiędzy jakąś rewizją a najnowszą)

W tym celu napisaliśmy wspólnie z Marcinem dwa skrypty, które całą tą magię wykonują za nas:

svn-sync (autorstwa Marcina)
svn-changes (moje dzieło)

svn-sync porównuje strukturę plików w katalogu roboczym i w repozytorium, po czym automatycznie dodaje brakujące (nowe) pliki do repozytorium i usuwa te które zostały lokalnie skasowane. Wywołuje się po prostu:

svn-sync – w katalogu roboczym, po czym można spokojnie „commitować” swoje zmiany

svn-changes wykonuje svn diff -r REV:REV –summary i na podstawie listy zmian generuje odpowiedni export w katalogu roboczym, wywołanie:

svn-changes -r x:y – gdzie x i y to numery rewizji, albo odpowiednie stałe np. HEAD

Pliki najlepiej umieścić sobie w katalogu /usr/bin i nadać im prawo wykonywania (chmod +x).

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

This site uses Akismet to reduce spam. Learn how your comment data is processed.