Języki

Erudis - your road to knowledge
SKW i co dalej

System kontroli wersji nie rozwiązuje jednak wszystkich problemów w zespole programistycznym. Jest tak naprawdę częścią większej całości – systemu zarządzania zmianą. System zarządzania zmianą powinien pozwolić na łączenie zmian w kodzie z żądaniami zmiany i śledzeniem błędów. Takie podejście pozwala na dokładniejsze zarządzanie projektem i pracą. Samo podejście do projektu przez pryzmat żądań zmiany (change request) i próśb o funkcjonalność (feature request) porządkuje pracę, która musi być wykonana i pozwala na jej właściwą organizację.

Subiektywna lista systemów SCM

Visual SourceSafe - repozytorium oparte o pliki, nie działa w modelu klient-serwer. Problemem na który często narzekają użytkownicy jest konieczność częstego naprawiania bazy plików. Nie posiada transakcyjnego wstawiania plików.

CVS - prawdopodobnie najbardziej rozpowszechniony system zarządzania wersjami plików. Może pracować zarówno w trybie serwera jak i plikowo na jednej maszynie. Wadą jest brak możliwości przeniesienia pliku w strukturze z zachowaniem wersji, oraz brak możliwości zmiany nazwy pliku. Kolejną wadą jest także konieczność sztywnego zaprojektowania struktury katalogów, ponieważ nie są one wersjonowane. Brak transakcji przy wstawianiu plików może prowadzić do poważnych problemów. Zaletą jest to że CVS istnieje już tak długo że wszystkie błędy są już znane. Zaletą i wadą jest przechowywanie pełnych wersji plików. Zaletą bo łatwo naprawić repozytorium, wadą bo trzymanie w ten sposób dużego projektu może być koszmarem i zajmować bardzo dużo miejsca. Nowoczesne systemy przechowują różnicę pomiędzy wersją poprzednią a bieżącą, albo wykorzystują pewną mieszankę obu podejść, przechowując pełne pliki co pewną ilość wersji.

Subversion - Subversion powstał z myślą o naprawieniu problemów występujących w CVS, co się w dużej mierze udało - z tego powodu Subversion wypiera powoli CVS-a. Wadą Subversion jest brak możliwości etykietowania grup plików - tworzenie etykiety działa na całe repozytorium i tworzy nowy katalog z bieżącą wersją plików.

Podsumowanie

Przykłady przedstawione w powyżej pokazują kilka wybranych zagadnień dotyczących wykorzystania systemów kontroli wersji.

Natomiast aby można było dobrze wykorzystać te wszystkie możliwości to konieczne jest przestrzeganie dwóch bardzo ważnych reguł:

  1. często wstawiać pliki do repozytorium. Obecnie narzędzia do wersjonowania działają na poziomie pliku i tylko tam umieszczane zmiany są zauważane, dlatego częste wstawianie pozwala na dosyć dokładne określenie zmiany oraz tego czego ona dotyczy.
  2. Wstawiać do repozytorium tylko te zmiany, które nie powodują problemów z kompilacją. Przed każdym wstawieniem wstawiający zobowiązany jest sprawdzić czy to co wstawia jest kompilowalne. Jeżeli pracujemy na wielu plikach, przydatne może być korzystanie z prywatnych gałęzi kodu oferowanych przez niektóre narzędzia

Trudno w krótkim artykule umieścić wszystkie kwestie związane z wersjonowaniem, ale mam nadzieję, że ten artykuł przekona wahających się, że warto.