6

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.

Odpowiedz

1

autoinkrementacja numery wersji

czyli metadanych i oddanie w metadanych (wersjonowanym) danych jest „zła”: do zalet i wad, zobacz this answer.

Continuous Integration obejmuje automatyzację gromadzeniu, który jest o byciu w stanie rozmnażać kompilacji z stałej zestaw wersje danych.
Jeśli zmienisz coś z powrotem w tym samym zestawie, w pewnym sensie pokonasz jego cel.

+0

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. –

+0

@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

Powiązane problemy