Jeżeli widzisz siebie w przyszłości jako programista w pełnym tego słowa znaczeniu, warto zaznajomić się z takim pojęciem, jak kontrola wersji. Na rynku oprogramowania znajduje się obecnie sporo takich systemów, m. In. GIT, IBM ClearCase czy SVN (z którego ja osobiście korzystam). Nie będę tutaj skupiał się na którymś konkretnym, lecz chciałbym przedstawić Ci ogólny zarys i zasadę działania systemu kontroli wersji. Zatem do rzeczy…

System kontroli wersji działa w prosty sposób.

Po pierwsze: wersjonuje każdą modyfikację projektu, nadając jej unikatowy numer rewizji i umożliwia dodanie komentarza, czego zmiana dotyczy.

Po drugie: trzyma całą historię zmian i pozwala przywrócić źródła do dowolnego punktu z historii.

Po trzecie: automatycznie scala pliki znajdujące się w repozytorium z wysyłanymi jako kolejna modyfikacja. Jeśli system nie będzie potrafił scalić pliki automatycznie, poprosi użytkownika o ręczną edycję konfliktu.

Wiesz już co daje system kontroli wersji. Kiedy zatem owy system się przydaje, a kiedy jest wręcz niezbędny?

Przydaje się, gdy piszesz mały projekt (stronkę, mini-aplikację) i chcesz mieć możliwość wglądu do wszystkich zmian, które wprowadzałeś i w razie czego, możliwość przywrócenia źródeł do poprzedniej wersji stabilnej. Trzymasz wtedy rękę na pulsie i nie musisz się obawiać, że zapomnisz czego dotyczyła zmiana.

Niezbędny okazuje się w sytuacjach, gdy więcej niż jedna osoba rozwija jeden projekt. To nie musi być duży zespół – wystarczą dwie osoby. Wyobraźmy sobie choćby błahy plik konfiguracyjny. Przed każdym upload’em na serwer musielibyśmy pobrać obecną wersję pliku i sprawdzić, czy przypadkiem kolega czegoś nie dopisał. Ewentualnie musielibyście do siebie dzwonić (mailować) i pytać „hej, nie zmieniałeś może configu?”. W innym wypadku nadpiszemy jego zmiany. Tutaj z pomocą przychodzi nam system kontroli wersji, który automatycznie zachowuje zmiany kumpla, łącząc je jednocześnie z naszymi.

Żeby móc korzystać z dobrodziejstw systemu, potrzebujemy odpowiednio skonfigurowanego serwera, który będzie przechowywał pliki źródłowe i historię zmian. Do połączenia z serwerem używamy klienta, który powiąże folder na dysku lokalnym z serwerowym repozytorium i będzie monitorował zmiany.

Oczywiście gorąco zachęcam do wypróbowania możliwości, jakie daje kontrola wersji. W sieci, oprócz serwerów płatnych, jest kilka miejsc, gdzie można za darmo założyć własne, niewielkie repozytorium. Jest to najprostszy sposób na przetestowanie tej technologii. Zawsze możesz zainstalować serwer u siebie na komputerze, lecz jest to już nieco więcej pracy.

Darmowe publiczne repozytorium GIT możesz założyć na www.github.com. Jeśli będziesz chciał ukryć się przed światem, będzie to kosztowało od 7$ miesięcznie wzwyż.

Założenie darmowego publicznego repozytorium SVN umożliwia m. in. xp-dev.com. Sam korzystam z tego serwisu. Repozytoria prywatne zaczynają się od 5$ miesięcznie.

Raz jeszcze gorąco zachęcam do pracy w oparciu o kontrolę wersji. Każdy szanujący się programista nie wyobraża sobie pracy bez takiego systemu.