Seite 1 von 1

Subversion Revision in About-Box

Verfasst: 16. Januar 2009 15:39
von Strahlex
Wie bekomme ich immer die aktuelle Subversion Revision in die About-Box?
Gibts da irgenteinen Pre-Compiler Befehl?

So hätte ich mir das vorgestellt:

Code: Alles auswählen

 
QMessageBox::about(this,tr("About blabla"),tr("blabla Revision: %1").arg(<Subversion Revision>));
PS: Das Build-Datum wäre vielleicht auch interessant.

Re: Subversion Revision in About-Box

Verfasst: 16. Januar 2009 15:51
von franzf
Strahlex hat geschrieben:Wie bekomme ich immer die aktuelle Subversion Revision in die About-Box?
Da es da m.M.n. nix fertiges gibt, musst du das beim Kompilieren selber machen.
Entweder output von svn info -r BASE parsen, oder im Hauptverzeichnis die .svn/entries.
PS: Das Build-Datum wäre vielleicht auch interessant.
QFileInfo auf QCoreApplication::applicationFilePath () loslassen.

Verfasst: 17. Januar 2009 10:27
von solarix
Auf Fileebene lässt sich das mit svn properties lösen:

Code: Alles auswählen

$ svn propset svn:keywords "Revision" main.c
property 'svn:keywords' set on 'main.c'
$
und in main.c:

Code: Alles auswählen

 printf("Revision: $Revision$");
Weitere infos findet man in seiner Lieblingssuchmaschine unter "svn keyword substitution" und "svn propset".

Jedoch: die Revisionsnummer wird nur in genau der festgelegten File nachgetragen... d.h., dass man vor dem Release der Software diese Datei nochmals modifizieren und einchecken muss, damit die Revision stimmt.

Sonst wie von franzf erklärt oder anstelle des Parsens einfach

Code: Alles auswählen

  $ svnversion .
2945M
aufrufen... ich mache sowas jeweils in der Makefile (oder qt-profile) und erstelle entsprechende Compiler-Flags (z.B. "-DSVN_REVISION='2945'").

hth...

Verfasst: 17. Januar 2009 18:14
von Strahlex
Danke, scheint zu funktionieren. :D

PS: muss man das mit den keywords bei jeden SVN-Benutzer einstellen?

Verfasst: 17. Januar 2009 18:37
von Christian81
Die keywords sind properties der Datei. Also nein.

Verfasst: 20. Januar 2009 08:45
von Strahlex
Die Revision wird nur dann geändert wenn die Datei geändert wird, wenn jetzt aber eine andere Datei geändert wird ändert sich die Revision nicht.

Gibts dafür auch noch eine Lösung? :?:

Verfasst: 20. Januar 2009 09:12
von Christian81
Nein - aber wenn Du ein Release machst wird Dein Build-Script daran wohl denken können. Zumindest haben wir das so in der Art gelöst.