Forum: PC Hard- und Software AnkhSVN und Revisionsnummer


von hal (Gast)


Lesenswert?

Hallo,
vermutlich verstehe ich das Prinzip einfach nicht.
Ich Teste gerade den Umgang mit AnkhSVN im Atmel Studio. Soweit scheint 
alles zu funktionieren. Allerdings verstehe ich nicht, wie das mit dem 
'Einfügen' der Information (Author, Datum, Revisionsnummer) in den 
C-Code funktioniert.
Hat mir jemand dafür ein paar Denkanstösse?

Danke
hal

: Verschoben durch Moderator
von Christian R. (supachris)


Lesenswert?

Svn keyword substitution und svn properties wären die passenden 
Suchbegriffe.

von hal (Gast)


Lesenswert?

Danke! Relativ einfach, wenn man die richtigen Begriffe hat.

Jetzt hab ich noch die frage was der 'elegante' Weg ist, um z.Bsp. die 
Revisionsnummer auf einen Display auszugeben? Muss ich dann
1
#define REV="$Rev: 6 $"
und dann später die Nummer extrahiere oder gibt es einen schöneren Weg?

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Bevor du dich mit allzu viel Begeisterung auf die Zerlegung von "$Rev: 6 
$" stürzt: diese (per svn:keywords) eingefügten Revisionsnummern zeigen 
immer nur den Revisionsstand der jeweiligen Datei an! Wenn diese nicht 
geändert wird, wird auch die Revision nicht erhöht!

Was du vermutlich suchst ist "svnversion" 
http://svnbook.red-bean.com/de/1.5/svn.ref.svnversion.re.html

Das wird dann üblicherweise ins build-Skript eingebunden, und die 
Ausgabe in eine spezielle Header-Datei geschrieben.

Leider etwas kompliziert...

Nichtsdestotrotz ist es empfehlenswert (und guter Stil) 
SVN-Informationen im Header jeder Quelldatei zu haben. alle meine 
*.[ch] Files beginnen so:
1
/* $Id: i2c_master.c 723 2014-09-01 06:17:41Z michi $
2
 * $URL: https://svn.trisoft.at/AVR/UART/i2c_master.c $
3
 *
4
 * simple I2C master
5
 *
6
 * Copyright (C) 2013, 2014 Michael Reinelt <michael@reinelt.co.at>
7
 *
8
 */

ich verwende als nur $Id$ und $Url$, da steckt alles notwendige 
drinnen...

: Bearbeitet durch User
von Christian R. (supachris)


Lesenswert?

Ich mach das über das Tool subwcrev, was bei SubVersion dabei ist, das 
kann die Revision der gesamten Arbeitskopie ausgeben und per Template 
Datei raus schreiben. Eingebunden bei VS in die Pre-Build Events. Da 
lassen sich auch nur die Ziffern reinschreiben, also ohne "Rev".

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Christian R. schrieb:
> subwcrev, was bei SubVersion dabei ist

Der Vollständigkeit halber: Das kommt mit TortoiseSVN, nicht mit 
Subversion selbst.

: Bearbeitet durch User
von Christian R. (supachris)


Lesenswert?

Hab ich doch extra so geschrieben...

von hal (Gast)


Lesenswert?

Uff ... gibt es da irgendein HowTo?

von Christian R. (supachris)


Lesenswert?

Da: 
http://tortoisesvn.net/docs/nightly/TortoiseSVN_de/tsvn-subwcrev.html

Du brauchst dazu eine Vorlage, aus der dann z.B. die passende Header 
Datei generiert wird. In die Vorlage kommt z.B. rein:

#define REVISION $WCREV$

Beim Ausführen des subwcrev wird dann das $WCREV$ durch die aktuelle 
Version der Arbeitskopie ersetzt. Achja, das will den absoluten Pfad für 
die Arbeitskopie.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.