Ging-Buh hat geschrieben:cacheboxer hat geschrieben:Longri hat geschrieben:Und mit der Revisionsnummer ist das so eine Sache, diese muss von Hand in die Global.java eingetragen werden und wird häufig vergessen.
Bei TortoiseSVN ist ein Tool Namens SubWCRev dabei, mit dem man das automatisieren kann.
kannst du das vielleicht etwas genauer beschreiben, wie man das macht.
SubWCRev liest eine Quelldatei und ersetzt darin Platzhalter durch Informationen über die Arbeitskopie. Z.B. wird der Platzhalter $WCREV$ durch die höchste Revisionsnummer in der Arbeitskopie ersetzt (das, was Ihr jetzt manuell macht). Das Ergebnis wird in eine Zieldatei geschrieben.
Die Quelldatei steht unter Versionskontrolle, die Zieldatei natürlich nicht.
SubWCRev wird in den Build-Prozess eingebunden, so dass bei jedem Build die Revisionsnummer eingebaut wird.
Wenn Eure Versionsinformationen also z.B. in Global.java stehen, benennt Ihr Global.java in Subversion nach Global.java.template (oder was auch immer) um und ersetzt die Versionsinfos durch Platzhalter. Die eigentliche Global.java tragt Ihr in die Ignorierliste svn:ignore ein und lasst sie im Build-Prozess von SubWCRev erzeugen. Für den Entwickler und den selbstkompilierenden Anwender ist das völlig transparent. Wenn Global.java mehr als nur Versionsinformationen enthält, muss man natürlich in Zukunft funktionale Änderungen in Global.java.template machen, da Global.java bei jedem Build neu erzeugt wird.
Ein "Achtung" noch: SubWCRev ist ein Windows-EXE. Wenn jemand im Team unter Linux oder Mac OS X arbeitet, funktioniert das nicht. Da muss man dann svnversion (ist bei svn dabei) mit irgendeinem platformunabhängigen Scriptcode verheiraten, um das gleiche zu erreichen - ob das direkt in ant machbar ist, weiß ich nicht. Wenn Bedarf für eine platformunabhängige Lösung besteht, schaut Euch das einfach in irgendeinem anderen Open Source Projekt, das mit Subversion arbeitet, ab - die machen das ja alle. Ich würde da als erstes 'mal bei den Java-Projekten von Apache schauen, da hier die Umgebung (Subversion/Eclipse/Java) in etwa so sein dürfte, wie bei Euch.
MfG