Miałem wrażenie, że system kontroli wersji wyeliminował potrzebę umieszczania „dzienników zmian” wszędzie w kodzie. Często widziałem ciągłe korzystanie z dzienników zmian, w tym dużych długich bloków na początku procedur przechowywanych z dużą sekcją zablokowaną dla zmian w pliku i zaśmiecającą kod takimi rzeczami jak:
// 2011-06-14 (John Smith) Change XYZ to ABC to fix Bug #999
i:
// 2009-95-12 (Bob Jones) Extracted this code to Class Foo
// <commented-out code here>
Powodem tego, jak mi wyjaśniono, jest to, że przesiewanie naszych dzienników VCS trwa zbyt długo, aby dowiedzieć się, kto co i dlaczego zmienił, mając go w samym pliku kodu, na górze lub w pobliżu odpowiedniego zmiana, ułatwia sprawdzenie, kto i co zmienił. Chociaż widzę w tym sens, wydaje się to zbędne i po prostu trochę klepnięć: „Eee, tak naprawdę nie rozumiemy, jak właściwie korzystać z naszego VCS, więc w ogóle nie będziemy się tym przejmować”.
Co myślisz? Czy używasz zarówno komentarzy, jak i dziennika? Tylko dziennik? Czy uważasz, że łatwiej jest kodować, gdy widać nad blokiem kodu, że John Smith zmienił metodę sprawdzania XYZ tydzień temu, zamiast konieczności przeszukiwania dzienników i porównywania plików kodu w narzędziu Diff?
EDYCJA: Używając SVN, ale zasadniczo tylko jako repozytorium. Bez oddziałów, bez scalania, nic oprócz logów + pamięci.