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

Eine eigene Frage? Dieser Thread ist über 5 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.