Languages

Erudis - your road to knowledge
Po co nam kontrola wersji kodu źródłowego?!

Według różnych źródeł około 70% firm tworzących oprogramowanie nie używa żadnego systemu kontroli wersji. Część osób czytających być może zada sobie pytanie „Czego nie używa?”.

Poniżej postaram się przybliżyć problematykę kontroli wersji tym, którzy nie wiedzą na czym ona dokładnie polega lub wahają się, czy może być dla nich użyteczna.

Zacznijmy od początku. Na większości uczelni student informatyki dowie się czym jest klasa, jak napisać metodę i które języki programowania są według jego wykładowców najlepsze. Prawdopodobnie zdobędzie wiedzę w abstrakcyjnych dziedzinach informatyki, zgłębi meandry matematyki, ale nikt mu nie powie o kontroli wersji kodu źródłowego.

Bo właściwie po co? Projekty na zaliczenia rzadko będą rozbudowane. Czas ich życia wyznacza zbliżająca się sesja. Student opuszcza uczelnię przekonany, że teraz przed nim świetlista kariera w informatyce, że wie już wszystko.

Pierwszej pracy nie szuka się teraz po studiach ale w ich trakcie. Zgodnie z pierwszym akapitem tego paragrafu szanse na trafienie do firmy w której używa się systemu kontroli wersji (SKW) są mniej więcej jak 1:2. Pierwsze zetknięcie się z takim systemem jest zazwyczaj naznaczone wzajemną nieufnością: programista nie ufa SKW, a SKW nie ufa programiście. Porozumienie zdobywa się w „boju”.

Gdy raz pozna się pożytki płynące z użycia narzędzi do kontroli wersji, trudno sobie wyobrazić bez nich pracę.

Gdy trafiłem po raz pierwszy do dużej firmy tworzącej oprogramowanie na zamówienie, od razu dostałem polecenie zainstalowania systemu kontroli wersji. „Co za strata czasu” – pomyślałem. Po instalacji i krótkim instruktażu pobrałem kod nad którym miałem pracować i zacząłem coś w nim zmieniać. Najpierw wszystkie pliki były tylko do odczytu, a jak zdjąłem ten atrybut to serwer nie chciał ich przyjąć. Chwilę potrwało zanim ja przyzwyczaiłem się do systemu wersjonowania a on do mnie. Na szczęście pod czujnym okiem starszych kolegów nic nie zepsułem.

W miarę jak poznawałem zalety systemów kontroli wersji coraz bardziej przekonywałem się do korzystania z nich. Teraz nawet w projektach, które robię sam używam systemu kontroli wersji.