Git i automatyczna numeracja wersji programu kolejnymi liczbami naturalnymi

0

Teraz mam taka metodologię tworzenia nowej wersji programu:

  1. Zmiany w kodzie
  2. Commit na SVN
  3. na podstawie wersji SVN-a generuję pliki ze stałymi zawierające wersje , date commit-a, date kompilacji itp...
  4. Budowanie (w a plikacji sa zaszyte numer wersji data itp...)
    Z racji że SVN ma troche inna filozofie do GIT-a to kolejne wersje sa automatycznie numerowane 1,2,3..... (numer z SVN jest tez wersja oprogramownia)
    Mi podoba się numeracja liczbami naturalnymi a nie SHA-1, chciałbym to jakoś zachować używając GIT-a

Jak automatycznie numerować wersje oprogramowania kolejnymi liczbami naturalnymi z pomocą GIT-a ?
W ostateczności trzeba sobie zrobić plik z numerem i go ręcznie zwiększać :)

2
Adamek Adam napisał(a):

Jak automatycznie numerować wersje oprogramowania kolejnymi liczbami naturalnymi z pomocą GIT-a ?
W ostateczności trzeba sobie zrobić plik z numerem i go ręcznie zwiększać :)

Nigdy nie widziałem dla gita automatycznego zwiększania wersji. Zawsze był jakiś automat wpięty w pipeline lub robiło się to ręcznie za pomocą pół automatu (ustawianie w CI).
Poza tym lepszy niż pojedynczy numer jest SemVer z trzema liczbami MAJOR.MINOR.PATCH

1

Milion lat temu testowaliśmy branie wersji SVN wybranego pliku jako widoczny identyfikator wersji aplikacji, trochę to działało, ale nie była to dobra ścieżka (dłuższa opowieść, na co nie mam czasu)

Na Visual Studio się przyczaiłem, ze może być opcja automatycznej numeracji buildu, i w innych IDE też tego szukam i konfiguruję.
Podsumowanie: IDE to o wiele lepsze miejsce do tego pomysłu niż repo.

2

Zawsze możesz użyć git describe. To wygeneruje Ci string zawierający nazwę ostatniego taga z adnotacją i jeśli tag nie jest na obecnym commicie, to metadane w postaci -<ilość commitów od ostatniego taga>-<commit id>.

1

Wbrew pozorom, plik tekstowy z numerem nie jest głupi - bo chciałbyś dalej utrzymać opcję pt. jeden commit - jedna wersja? W Gicie raczej commity powinny być małe i nie zawsze będą podnosiły numerek wersji, chociaż oczywiście da się na przykład zrobić coś w tym stylu przez numerowanie tylko po commitach z głównej gałęzi, do której się merdżuje gałęzie poboczne wraz z robieniem squash i wtedy masz zawsze tylko commity merdżujące (ależ piękna polszczyzna mi wyszła).

W każdym razie wydaje mi się, że możesz użyć jakichś prostych skryptów w stylu git log --since <pewienpunktwczasie> --format=oneline | wc -l i to ci policzy ile było commitów od danego commitu, dodać do tego pierwszą wersję i to odpalać przy budowaniu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1