Collegamento di "#define versione x.x" in C con il tag di versione in Git

1

Sono sicuro che le persone lo fanno già, quindi la domanda. Nel mio progetto C, definisco la versione corrente usando:

#define VERSION 3.2.1

Questo viene inserito in un file di intestazione globale e viene utilizzato per varie attività come in un pacchetto UDP che comunica all'utente le versioni del firmware / software in esecuzione.

In Git (usando git bash) possiamo assegnare tag ai commit permettendo ai commit di essere referenziati sia dal loro hash che da questo tag. Potrei semplicemente usare manualmente:

git checkout <hash>
git tag v3.2.1

Tuttavia, quello che mi piacerebbe è che Git raccolga la variabile di versione dal file di intestazione C, garantendo così che venga digitata manualmente una sola volta.

Immagino che qualcuno abbia qualche script bash che fa esattamente questo e può essere impostato per usare un alias Git in modo che sia gestito facilmente una volta configurato?

Molte grazie. Ed

    
posta 20.12.2018 - 15:29
fonte

1 risposta

0

Supponi che v.h sia il nome del file di intestazione con

#define VERSION 3.2.1

definire.

Puoi estrarre il valore VERSION da esso, ad es., con

version=$(echo VERSION |  c99 -xc -include v.h - -E|tail -n1)

e poi fai

git tag v$version
    
risposta data 20.12.2018 - 18:15
fonte

Leggi altre domande sui tag