Programy do kontroli wersji kodu strony internetowej

Czas czytania 3 minuty

Kiedy zajmujemy się budową strony internetowej, aplikacji czy chociaż by grafiką nieważne, czy samodzielnie, czy w grupie. Bardzo często potrzebna jest nam kopia zapasowa plików, na których pracujemy.

Przydaje się ona nam szczególnie, jeśli popełnimy w kodzie jakieś błędy (rezygnujemy z rozwiązania) i zmuszeni lub chcemy wrócić do poprzedniej wersji. Wtedy kopia może nas ratować. Taką kopię plików możemy też nazywać „wersją” lub „wariantem”. A skoro tak to mamy do czynienia z bardzo prostą formą kontroli wersji.

Zespołowa praca nad projektem

Prawdziwa zabawa zaczyna się jednak dopiero w sytuacji, kiedy nad danym „projektem” pracuje jednocześnie kilka osób. Bardzo często osoby te wykonują swoje działania oddzielnie i nie zależnie od siebie. Zapanowanie nad tym chaosem bez odpowiedniego narzędzia jest więc praktycznie nie do osiągnięcia. Bardzo łatwo jest bowiem coś przeoczyć, czy zapomnieć.

Z tego też powodu przy projektach wymagających współpracy większej liczby osób stosuje się programy umożliwiające tworzenie kontroli wersji.

Po co narzędzie do kontroli wersji?

System kontroli wersji z języka ang. version control system lub revision control system (skrót VCS) jest zestawem narzędzi przeznaczonym do śledzenia oraz kontrolowania wszelkich zmian jakie zostały wprowadzone w plikach projektu. Chodzi tu np. o zmiany w

  • kodzie źródłowym,
  • dokumentacji,
  • plikach i bazach stron WWW.

Zastosowanie w projekcie narzędzia kontroli wersji umożliwia kilku osobom jednocześnie wprowadzanie zmian. Jest tak dlatego, że za każdym razem, kiedy zostanie utworzona nowa wersja pliku, program może utworzyć jej wersje lub chociaż ma informację o umieszczeniu nowej.

Dzięki czemu mamy wgląd na to, co się aktualnie dziej. Możemy też pobrać zmodyfikowane pliki naszych kolegów i połączyć je z naszymi. Daje nam to nawet możliwość pracy na tym samym pliku. Tworzenie kopii / wersji plików daje nam też możliwość wycofywania zmian, jeśli okazały się one „nieskuteczne” czy błędne.

Funkcje systemu kontroli wersji

  • przechowywanie oraz kontrola plików związanych z projektem,
  • śledzenie wprowadzonych modyfikacji w poszczególnych plikach,
  • pełna dokumentacja wprowadzanych zmian,
  • możliwość śledzenia różnorodnych konfiguracji oprogramowania,
  • udostępnianie kolejnych wersji poszczególnych plików.

Typy systemów kontroli wersji

Spotykane są trzy podstawowe rodzaje oprogramowania. Chodzi więc o:

  • lokalne (np. w innym katalogu na naszym komputerze),
  • scentralizowane (z przechowywaniem plików na serwerze zewnętrznym),
  • rozproszone (na kilku różnych serwerach).
uproszczony system kontroli wersji
uproszczony system kontroli wersji

Przykładowe określenia związane z VCS

commit

Wykonuje się go w celu zapisania zmiany w projekcie. Powoduje on, że plik lub katalog zostaje wgrany do „bazy danych” w naszym repozytorium.

komentarz do zmiany (ang. log message)

Jest to forma krótkiej wiadomości, którą możemy dodać do commit w celu np. poinformowania innych użytkowników jakie zmiany aktualnie wprowadziliśmy. Dzięki komentarzowi możemy np.:

  • poinformować innych członków zespołu jakie zmiany wprowadziliśmy w kodzie
  • zostawić sobie wiadomość, w którym miejscu skończyliśmy pracę

aktualizacja (ang. update)

W czasie aktualizacji pobierane są na nasz komputer lokalny wszystkie zmiany wprowadzone przez innych użytkowników projektu. Dzięki czemu mamy aktualną wersję kodu projektu, nad którym pracujemy.

repozytorium (ang. repository)

Jest to baza danych, w której zapisywane są wszystkie pliki jak informacje dotyczące projektu. W zależności od tego z jakiego programu korzystamy podczas pracy mamy jedno wspólne lub kilka indywidualnych repozytoriów.

Tak czy inaczej, repozytorium jest bardzo ważne.

wersja (ang. revision), zmiana (ang. change), zbiór zmian (ang. changeset)

To przeważnie każda wersja danego pliku lub katalogu. W zależności od systemu stosuje się jedno z tych określeń. Praktycznie każda wersja składa powstaje w wyniku wprowadzenia kolejnych zmian lub ich cofania.

gałąź (ang. branch)

Jest to odizolowana wersja projektu. Nie wpływa ona więc na aktualną wersję.

scalanie lub portowanie (ang. merge lub port)

W praktyce chodzi o połączenie ze sobą jednej lub kilku gałęzi (przy czym żadna nie jest główną).

Określenia tego też używamy w sytuacji, kiedy dwie lub więcej osób edytowało ten sam plik lub katalog. Jednak zmiany te dotyczyły innego fragmentu kodu i nie przeszkadzają sobie nawzajem.

konflikt (ang. conflict)

Konflikt zachodzi w sytuacji kiedy jedna lub więcej osób będzie próbowało wprowadzić zmiany w tym samym miejscu (np. w kodzie). Systemy VCS powiadamiają jednego z użytkowników (próbującego wgrać zmiany) o jego zaistnieniu. Następny ruch należy więc do człowieka, to on musi podjąć decyzję co robić dalej.

Przykładowe systemy kontroli wersji?

Systemów do kontroli wersji na rynku jest całkiem sporo. Część ich funkcjonalności jest taka sama jednak każdy z nich, posiada również swoje indywidualne rozwiązania. Obecnie najpopularniejszymi systemami są:

  • Git
  • SVN
  • CVS

Git i SVN to obecnie najpopularniejsze systemy kontroli wersji stosowane w wielu firmach. Z aplikacji tych można również korzystać w warunkach domowych. Tworząc np. repozytorium wykonanych przez siebie projektów. Wielu programistów wykorzystuje je potem jako Portfolio.

źródło: