Do czego służy zarządzanie wersjami
Do czego jest potrzebne zarządzanie wersjami? Naturalnie nasuwający się argument o możliwości odtworzenia dowolnej wersji pliku źródłowego czy dokumentu (w kontektach biznesowych bardziej szumnie zwany np. reprodukowalnością buildów) jest prawdziwy ... ale wcale nie tak istotny, przypadki gdy sprawdzamy jak coś wyglądało dwa lata temu są dość sporadyczne.
A co jest naprawdę ważne?
Używanie jakiegokolwiek systemu zarządzania wersjami pozwala nam być odważnym. Można poważyć się na głęboki refactoring kodu, można wypróbować poważne zmiany, można wymienić jakiś algorytm na inny, po prostu - można zmieniać bez obaw. Jeśli wprowadzone zmiany okażą się nie trafione, nie będzie problemu z wycofaniem się z nich. Funkcja Cofnij podniesiona na wyższy poziom, dostępna nawet po paru dniach czy rebootach i obejmująca wiele plików hurtem.
Jest dostępna informacja kto, kiedy i po co coś zmienił. Nieoceniona i niezbędna w pracy zespołowej, ale nawet samodzielny programista docenia możliwość sprawdzenia kiedy i po co dodałem tę dziwaczną deklarację.
Zarządzamy sytuacją, gdy wiele osób zmienia to samo. Sytuacja gdy zarówno Jasio, jak Kazio, potrzebuję zmieniać ten sam plik, nie jest już dramatem ale naturalnym elementem programowania w zespole.
Wreszcie, radykalnie ułatwione są typowe operacje procesu wytwórczego. Naturalnie rozwiązuje się sprawa zabezpieczania kodu przed przypadkową utratą, wiadomo co zrobić by udostępnić go nowemu programiście, nietrudno dobudować reguły przygotowywania dystrybucji, oznaczania stabilnych wersji, korelowania list błędów i rozszerzeń z rozwiązującymi je poprawkami itd itp. Zaawansowane systemy zarządzania wersjami wspomagają też procesy integrowania zmian pochodzących z wielu źródeł i równoczesnego prowadzenia wielu linii rozwoju kodu.