Die Programmiersprache Ruby

Blog|

Forum|

Wiki  


Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]

Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 09 Mai 2011, 21:08 
Offline
Interpreter
Benutzeravatar

Registriert: 18 Sep 2008, 22:32
Beiträge: 1412
Wohnort: NRW → UN
Hallo Community,

Ich habe da ein generelles Problem bei vielen meiner Projekte. Zunächst einmal sei gesagt, dass ich grundsätzlich mit Git versionskontrolliere. So, nun zum Problem: Angenommen, ich möchte mein Kommandozeilenprogramm soetwas anzeigen lassen:

1
2
myprogram -v
This is My Program, version 1.2.3-dev (commit abc1234, 09-05-2011).
Üblicherweise händle ich die Versionsnummer über eine Datei VERSION, welche ich über Raketasks bump:major, bump:minor, bump:tiny updaten lasse. Wenn ich nun einen Commit mache und speichere, und dann den Versionstask ausführe, bin ich gezwungen, noch einmal zu committen. Die Commit-ID im Versions-String zeit dann nicht mehr auf den neusten Commit, sondern ist genau um 1 nach hinten verschoben, nämlich auf den Commit vor dem Versionsbump.
Mache ich es umgekehrt und mache erst meine Änderungen, führe dann den Versionstask aus und commite dann, zeigt der Versions-String auf den Commit vor meinen Änderungen -- völlig inakzeptabel.

Welches ist das übliche Vorgehen in einer solchen Situation? Gibt es keine Möglichkeit, tatsächlich den momentanen Commit irgendwie in meine VERSION-Datei zu bekommen?

Valete,
Quintus

_________________
Habe den Mut, dich deines eigenen Verstandes zu bedienen! — Immanuel Kant

Mein Blog | Auf Twitter: @qquintilianus | PGP/GPG-Schlüssel: BF3A 614B D62B A4A0 C292 141C B875 5CB1 C592 A85A

Helft beim OpenRubyRMK, einem freien Programm zum erstellen von RPGs! (→ GitHub-Projekt)


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Git-Versionsanzeigeproblem
BeitragVerfasst: 09 Mai 2011, 22:50 
Offline
Lehrling

Registriert: 25 Mai 2009, 12:48
Beiträge: 91
Wohnort: Berlin
Wenn ich dich richtig verstanden habe, geht das so:


1
2
3
git reset --soft HEAD
git add VERSION
git commit -m 'commitnachricht des letzten commits, am besten vorher nochmal aufschreiben xD'

_________________
fresh / irbtools / ripltools / github / J-_-L


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Git-Versionsanzeigeproblem
BeitragVerfasst: 10 Mai 2011, 11:59 
Offline
Interpreter
Benutzeravatar

Registriert: 18 Sep 2008, 22:32
Beiträge: 1412
Wohnort: NRW → UN
Nicht wirklich; git --reset ist ja dafür da, Fehler rückgängig zu machen. Außerdem wird doch der neue alte Commit eine neue Commit-ID kriegen, oder? Wie soll ich denn da die aktuelle Commit-ID in den Versionsstring bekommen?

Beispiel, wie ich mir das vorstelle:

1. myprog -v: myprog 1.2.3-dev (commit abc1234)
2. Commits machen
3. myprog -v: myprog 1.2.4-dev (commit def4321)

Wobei der Commit def4321 dann auch der aktuelle Commit sein soll. Im Klartext, wenn ich "git log" ausführe, soll der erste Commit, der da gelistet wird, identisch mit dem sein, den der Versionsstring enthält.

Vale,
Quintus

_________________
Habe den Mut, dich deines eigenen Verstandes zu bedienen! — Immanuel Kant

Mein Blog | Auf Twitter: @qquintilianus | PGP/GPG-Schlüssel: BF3A 614B D62B A4A0 C292 141C B875 5CB1 C592 A85A

Helft beim OpenRubyRMK, einem freien Programm zum erstellen von RPGs! (→ GitHub-Projekt)


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Git-Versionsanzeigeproblem
BeitragVerfasst: 10 Mai 2011, 19:55 
Offline
Interpreter
Benutzeravatar

Registriert: 03 Jul 2006, 14:53
Beiträge: 4847
Wohnort: RLP
Hilft dir vielleicht git rev-parse? Das gibt dir den Versionsstring hinter einen beliebigen Label, unter anderem tags und eben auch branches:



1
2
git rev-parse master #=> aa00fe6a8335c520801d83a3ee2786935570f8f2
git rev-parse version2 #=> something else


Gruß,
Skade


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Git-Versionsanzeigeproblem
BeitragVerfasst: 11 Mai 2011, 11:56 
Offline
Metaprogrammierer

Registriert: 03 Feb 2008, 15:36
Beiträge: 624
Wohnort: Kamen, NRW
Die aktuellsten Commit-SHA1 in einer versionierten Datei im aktuellsten Commit zu speichern, erscheint mir nahezu unmöglich (gut, raten wäre noch eine Möglichkeit).

Ich kenn es nur so von (kompilierten) Programmen, dass diese in ihrem Makefile halt per git den Commit abrufen und dann in die Datei speichern und alles kompilieren.
Das was rauskommt ist dann natürlich nicht unter Versionskontrolle.

_________________
-


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Git-Versionsanzeigeproblem
BeitragVerfasst: 11 Mai 2011, 15:01 
Offline
Interpreter
Benutzeravatar

Registriert: 18 Sep 2008, 22:32
Beiträge: 1412
Wohnort: NRW → UN
BadBoy_ hat geschrieben:
Ich kenn es nur so von (kompilierten) Programmen, dass diese in ihrem Makefile halt per git den Commit abrufen und dann in die Datei speichern und alles kompilieren.
Ah, das ist der Trick bei der Sache. Ich hatte mich nämlich gewundert, dass es bei anderen Programmen auch geht -- aber da die fertige Executable ja nicht unter Versionsverwaltung steht, wie es bei Skriptsprachen zwangsläufig der Fall ist, geht das. Danke für die Aufklärung! :)

Ich denke, ich muss dann wohl mit der Diskrepanz von einem Commit leben. Und schließlich macht der Verison-bump-Commit ja nichts außer eben die die Versionsnummer hochsetzen. Den Thread markiere ich jetzt mal als erledigt, aber wenn jemand noch eine generell andere Vorgehensweise bei der Anzeige und Speicherung der Versionsnummer hat, kann er sie gerne vorstellen. :)

Valete,
Quintus

_________________
Habe den Mut, dich deines eigenen Verstandes zu bedienen! — Immanuel Kant

Mein Blog | Auf Twitter: @qquintilianus | PGP/GPG-Schlüssel: BF3A 614B D62B A4A0 C292 141C B875 5CB1 C592 A85A

Helft beim OpenRubyRMK, einem freien Programm zum erstellen von RPGs! (→ GitHub-Projekt)


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Git-Versionsanzeigeproblem
BeitragVerfasst: 11 Mai 2011, 15:09 
Offline
Hacker

Registriert: 24 Nov 2008, 14:56
Beiträge: 475
Quintus hat geschrieben:
Ich denke, ich muss dann wohl mit der Diskrepanz von einem Commit leben.
warum? das fertige gem packst du doch nicht in dein repository oder?

gruss,
tom.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Git-Versionsanzeigeproblem
BeitragVerfasst: 11 Mai 2011, 15:22 
Offline
Interpreter
Benutzeravatar

Registriert: 03 Jul 2006, 14:53
Beiträge: 4847
Wohnort: RLP
Quintus hat geschrieben:
Ich denke, ich muss dann wohl mit der Diskrepanz von einem Commit leben. Und schließlich macht der Verison-bump-Commit ja nichts außer eben die die Versionsnummer hochsetzen. Den Thread markiere ich jetzt mal als erledigt, aber wenn jemand noch eine generell andere Vorgehensweise bei der Anzeige und Speicherung der Versionsnummer hat, kann er sie gerne vorstellen. :)

Valete,
Quintus


Naja, du kannst da ja durchaus tricksen: du legt den VERSION-File an, wenn du den Gem verpackst. Wenn es keinen VERSION-File gibt, liest du die Version mittels git aus, wenn es kein git gibt, schreibst du einfach nur 'prerelease'.


Nach oben
 Profil  
 
BeitragVerfasst: 11 Mai 2011, 15:27 
Offline
Interpreter
Benutzeravatar

Registriert: 18 Sep 2008, 22:32
Beiträge: 1412
Wohnort: NRW → UN
case hat geschrieben:
warum? das fertige gem packst du doch nicht in dein repository oder?
Stimmt zwar, aber

a) Packe ich nicht jede Software in ein Gem und
b) baue ich nicht für jede Development-Version ein Gem, sondern nur für stable releases. Testen kann ich schließlich auch direkt aus dem Projektverzeichnis; ich will ja nicht für jedes bisschen Testen ein Gem bauen, da installiere ich ja nur noch Gems.

Skade hat geschrieben:
Naja, du kannst da ja durchaus tricksen: du legt den VERSION-File an, wenn du den Gem verpackst. Wenn es keinen VERSION-File gibt, liest du die Version mittels git aus, wenn es kein git gibt, schreibst du einfach nur 'prerelease'.
Einfach und effektiv. Ich glaube, so geht das am besten. Dank nochmal an euch beide!

Valete,
Quintus

_________________
Habe den Mut, dich deines eigenen Verstandes zu bedienen! — Immanuel Kant

Mein Blog | Auf Twitter: @qquintilianus | PGP/GPG-Schlüssel: BF3A 614B D62B A4A0 C292 141C B875 5CB1 C592 A85A

Helft beim OpenRubyRMK, einem freien Programm zum erstellen von RPGs! (→ GitHub-Projekt)


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Git-Versionsanzeigeproblem
BeitragVerfasst: 01 Jun 2011, 12:27 
Offline
Schüler

Registriert: 11 Okt 2010, 17:54
Beiträge: 36
J-_-L hat geschrieben:
Wenn ich dich richtig verstanden habe, geht das so:


1
2
3
git reset --soft HEAD
git add VERSION
git commit -m 'commitnachricht des letzten commits, am besten vorher nochmal aufschreiben xD'

Hab die problemstellung nicht ganz verstanden. Sollte dashier aber ein lösungsweg sein, möchte ich verbessern:

git commit --amend meineschoenedatei.rb

fuegt zum letzten Commit hinzu und laesst die message dann nochmal aendern!

(vielleicht anstatt 'commit' auch 'add' ... weis jetzt nichmehr ... )


Nach oben
 Profil  
 
BeitragVerfasst: 01 Jun 2011, 14:34 
Offline
Interpreter
Benutzeravatar

Registriert: 18 Sep 2008, 22:32
Beiträge: 1412
Wohnort: NRW → UN
musicmatze hat geschrieben:
git commit --amend meineschoenedatei.rb

fuegt zum letzten Commit hinzu und laesst die message dann nochmal aendern!
Wenn sich die Commit-ID dabei nicht ändert (was ich bezweifle), würde das gehen. Aber ich löse das jetzt so, wie Skade vorgeschlagen hat.

Vale,
Quintus

_________________
Habe den Mut, dich deines eigenen Verstandes zu bedienen! — Immanuel Kant

Mein Blog | Auf Twitter: @qquintilianus | PGP/GPG-Schlüssel: BF3A 614B D62B A4A0 C292 141C B875 5CB1 C592 A85A

Helft beim OpenRubyRMK, einem freien Programm zum erstellen von RPGs! (→ GitHub-Projekt)


Nach oben
 Profil  
 
BeitragVerfasst: 01 Jun 2011, 15:32 
Offline
Interpreter
Benutzeravatar

Registriert: 03 Jul 2006, 14:53
Beiträge: 4847
Wohnort: RLP
Die Commit-ID ändert sich. Deshalb sollte man ja niemals amend verwenden, wenn der commit bereits gepusht ist.


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
cron