Ideą KONTROLI WERSJI (myląca nazwa: kontrola źródła) jest umożliwienie ci cofnięcia się do historii, odzyskania efektu zmian, zobaczenia zmian i powodów ich wprowadzenia. Jest to szereg wymagań, z których niektóre wymagają binarnych rzeczy, a niektóre nie.
Przykład: W przypadku wbudowanego oprogramowania układowego zwykle masz kompletny zestaw narzędzi: albo kompilator, który kosztuje dużo pieniędzy, albo jakąś wersję gcc. Aby uzyskać plik wykonywalny wysyłki, potrzebujesz zarówno łańcucha narzędzi, jak i źródła.
Sprawdzanie łańcuchów narzędzi w kontroli wersji jest uciążliwe, narzędzia różnicowania są okropne (jeśli w ogóle), ale nie ma alternatywy. Jeśli chcesz zachować zestaw narzędzi dla faceta, który przyjrzy się Twojemu kodowi za 5 lat, aby dowiedzieć się, co on robi, to nie masz wyboru: MUSISZ mieć również kontrolę łańcucha wersji.
Przez lata odkryłem, że najprostszym sposobem na zrobienie tego jest utworzenie pliku ZIP lub ISO instalacyjnego dysku CD i wpisanie go. Komentarzem do zgłoszenia musi być konkretny numer wersji producenta zestawu narzędzi. Jeśli gcc lub podobny, spakuj wszystko, czego używasz, w duży plik ZIP i zrób to samo.
Najbardziej ekstremalnym przypadkiem, jaki zrobiłem, jest Windows XP Embedded, gdzie „toolchain” to działająca maszyna wirtualna z systemem Windows XP, która zawiera (wtedy) SQL Server i stos plików konfiguracyjnych wraz z setkami plików łatek. Zainstalowanie całej partii i jej aktualizacja zajęło około 2-3 dni. Zachowanie tego dla potomności oznaczało sprawdzenie CAŁEJ maszyny wirtualnej w kontroli wersji. Widząc, że dysk wirtualny składa się z około 6 x 2 GB obrazów, faktycznie poszło całkiem nieźle. Brzmi nieźle, ale bardzo ułatwiło to życie osobie, która poszła za mną i musiała z niej skorzystać - 5 lat później.
Podsumowanie: Kontrola wersji jest narzędziem. Używaj go, aby być skutecznym, nie rozwieszaj się na temat znaczenia słów i nie nazywaj go „kontrolą źródła”, ponieważ jest większy.