Korzystanie z historii zatwierdzeń obsługiwanej przez system kontroli wersji kosztuje prawie nic. Jednak podczas dużego projektu refaktoryzacji (lub reorganizacji / czyszczenia) zostaną przeniesione funkcje i klasy, a nawet przestrzenie nazw; czasami kilka plików zostanie połączonych ze sobą, a inne pliki zostaną podzielone. Zmiany te często prowadzą do utraty oryginalnej historii zatwierdzeń kilku plików.
Moim osobistym zdaniem utrzymanie organizacji projektu jest ważniejsze niż przechowywanie historii kodu źródłowego. Dobra organizacja projektu pozwala na ciągłe dodawanie nowych funkcji przy rozsądnym wysiłku, a wartość historii kodu źródłowego wydaje się wątpliwa.
Ponadto przy użyciu testów jednostkowych problemy z regresją są szybko identyfikowane. Tak długo, jak najnowsza wersja nadal spełnia wszystkie wymagania dotyczące oprogramowania, czy faktycznie musimy zachować historię kodu źródłowego?
Rozumiem, że każdy dostarczony kod źródłowy musi zostać zachowany z powodu potrzeby zapewnienia wsparcia klientom bez konieczności przeprowadzania aktualizacji głównej wersji. Ale poza tym, czy jest jakaś wartość w utrzymywaniu historii zatwierdzeń kodu źródłowego?
Czy historia zatwierdzania kodu źródłowego odgrywa jakąkolwiek rolę w komunikacji między członkami zespołu? Co się stanie, jeśli zniesiemy historię zatwierdzeń, ale zamiast tego polegamy na „kodzie źródłowym” + „jednostkowym kodzie testowym” do komunikacji?
Czy istnienie historii zatwierdzeń powoduje, że ktoś popada w długofalową dokumentację ważnych informacji o projekcie, takich jak główne zmiany w projekcie / wymaganiach i strumienie myśli, które doprowadziły do tych zmian?
These changes often lead to the loss of the original commit history of a few files.
Spójrz np. Na „git blame” - nic się nie zgubi. Czasami może być nieco trudniej znaleźć, ale zawsze tam jest.