# Subversion Revisions Nummer in JAVA Code einfügen.



## Tikonteroga (6. September 2010)

Hallo,

ich verwende Subversion um meinen JAVA Code zu versionieren.

Nun möchte ich gerne dass meine Anwendungen zur Laufzeit wissen, zu welcher Revision sie gehören.

Gibt es eine Möglichkeit, das Subversion die aktuelle Revision in den Java Code einfügt.

Also dass ich bei meiner Klasser nachher z. B. folgendes ausführen kann.


```
private static final int REVISION = 204;

public static int getRevision() {
     return REVISION;
}
```

Ich würde mich über Vorschläge aber auch Alternativen sehr freuen.

Mfg

Tikonteroga


----------



## gorefest (6. September 2010)

wenn du mit einem buildtool wie maven arbeitest, müsste das über einen filter gehen. 

wenn du mit ant arbeitest, kannst du dir über svn-in-ant (name vergessen >2 jahre her) dir die revisionsnummern holen. statt sie in den javacode zu wursten, würde ich sie dann in ein propertyfile schreiben und mir von dort diese infos holen.

grüße
gore


----------



## Thomas Darimont (6. September 2010)

Hallo,

du könntest in deinem Java Code die Revision als String hinterlegen:
final static String REVISION = "$Rev$";

Mit aktivierten svn:keywords auf den .java Dateien. Diese werden dann automatisch von SVN ersetzt.
Siehe auch:
http://svnbook.red-bean.com/nightly/en/svn.advanced.props.special.keywords.html

Gruß Tom


----------



## gorefest (6. September 2010)

das hört sich interessant an. aber worher weiss SVN beim commit, dass da wieder $REV$ statt 2349 hinmuss?


----------



## deepthroat (6. September 2010)

Hi.





gorefest hat gesagt.:


> das hört sich interessant an. aber worher weiss SVN beim commit, dass da wieder $REV$ statt 2349 hinmuss?


Ganz einfach: in der eingechekten Datei steht immer $REV$, nur in deiner Working-Copy steht der Wert des Keywords.

Aber Vorsicht, das $REV$ bezieht sich lediglich auf die letzte Änderung der Datei. D.h. wenn die Datei in der das Keyword auftaucht seit 50 Revisionen nicht geändert wurde, kannst du im Nachhinein nicht sagen welche Revision du nun ausgecheckt hattest (um z.B. Fehler nachvollziehen zu können).

Falls du Ant verwendest könntest du z.B. die Revision des Toplevel-Directories auslesen und z.B. im Manifest speichern (http://subclipse.tigris.org/svnant/svn.html).

Gruß


----------

