Revision aus Github Repository holen

OP #6504484
Lesenswert?

Hallo Zusammen,

ich arbeite momentan an einem Firmware Projekt, welches sich auf Github 
befindet. Nun möchte ich die Nummer der Revision (Anzahl Commits im 
Repository ) als meine automatische Firmware versionsnummerierung 
nutzen.

Nun habe ich herausgefinden wie ich die Nummer holen kann über ein 
CMD-Befehl. Dieser geht wie folgt:
1
 git rev-list HEAD --count

Dieser Behfehl gibt mir z.B. 230 zurück.

Wie kann ich nun diese Zahl z.B. in ein Header-File speichern als:
1
 #define REVISION *Zahl*
?

Das ganze würde ich gerne als Batch-File realisieren, da ich das in 
meiner IDE als Pre-Command hinterlegen kann.

Kann mir da jemand helfen, kenne mich garnicht damit aus und wurde mit 
googln auch nicht schlauer.

Selbst habe ich schon dies versucht:
1
@echo off
2

3
git rev-list HEAD --count
4

5
echo #define REVISION "%temp%" > Core\Inc\revision.h

Dies funktioniert bei mir aber nicht, es steht dann immer folgendes im 
Header-File: #define REVISION "C:\Users\mootseeker\AppData\Local\Temp"
#6504516
Lesenswert?

Moot S. schrieb:
> Selbst habe ich schon dies versucht:
>
1
> 
2
> @echo off
3
> 
4
> git rev-list HEAD --count
5
> 
6
> echo #define REVISION "%temp%" > Core\Inc\revision.h
7
> 
8
>

Ähm, Windows Batch-Job? Windows Scripting ist immer eine Katastrophe. 
Batch-Jobs können zu wenig, PowerShell ist komplett überzüchtet.

Mit einem Batch-Job muss man sich richtig ins Knie schießen um die 
Ausgabe eines Befehls in eine Variable zu bekommen. Etwa so:
1
for /f "delims=" %%t in ('git rev-list HEAD --count') do set count=%%t

Und nun frag mich mal jemand warum ich Microsoft für eine komplett 
inkompetente Firma halte ...

Noch was, den Variablennamen temp solltest du nicht verwenden, dass ist 
eine Variable die Windows selber verwendet (Pfad zum Verzeichnis für 
temporäre Dateien). Am besten noch den ganzen Batch-Job in SETLOCAL (mit 
oder ohne ENABLEDELAYEDEXPANSION) und ENDLOCAL klammer, dann kann man 
nicht versehentlich vorhandene globale Variablen überschreiben.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren