Często widziałem zautomatyzowane procesy kompilacji, w tym kompilacje ciągłej integracji, zatwierdzanie zmian dokonanych w plikach źródłowych podczas kompilacji z powrotem do repozytorium kontroli wersji, z którego pochodzi źródło *. Auto-inkrementujące numery wersji są częstym scenariuszem, w którym to się odbywa, ale są inne.Czy zautomatyzowany proces budowania powinien zatwierdzać zmiany w kontroli wersji?
Moją intuicją jest to, że jest to zły pomysł, ponieważ może zaśmiecać historię repozytorium za pomocą zatwierdzeń dotyczących kompilacji, a proces tworzenia musi zapobiegać przypadkowemu ponownemu uruchomieniu. Nie mam jednak żadnych konkretnych dowodów, że najlepiej jest unikać popełniania zmian podczas budowy.
Czy ktoś może cytować odniesienia omawiające zalety i wady zmian zatwierdzenia do kontroli wersji podczas kompilacji automatycznej?
* Zatwierdzanie zmian w osobnym repozytorium artefaktów jest całkowicie dopuszczalne.
Rozważałem kwestię możliwości odtworzenia kompilacji, ale jeśli kompilacja uruchomiona w stosunku do wersji N powoduje zmianę z powrotem na kontrolę źródłową i tworzy wersję N + 1, to powtórzenie kompilacji względem wersji N ponownie będzie ignorowane z N + 1 i nie powinien zmieniać wyników. –
@JasonStangroome: ale stworzy bezużytecznie wersję N + 1 w kółko. Po prostu tego nie rób. Nie służy to żadnemu użytecznemu celowi. CI polega na * czytaniu i budowaniu, bez pisania czegokolwiek. – VonC