Frage

Ich bin mit Visual SVN auf meiner Windows-Box.

Ich habe Repository Application, die als svn Framework hat: extern. Alles schön und gut.

Wenn ich eine Kasse von Application machen, würde Ich mag die Version von Application und Framework zur Aufnahme in einer Footer-Datei haben. Auf diese Weise habe ich könnte so etwas wie:

Application Version $ApplicationVersion$, Framework Version $FrameworkVersion$

Normalerweise verstehe ich, ich könnte svn: keywords und die Revision hinzuzufügen - aber wie ich es verstehe, svn: keywords gelten auf einer Pro-Datei-Basis. Einige Seiten haben mit svnversion vorgeschlagen, um die Ausgabe für jede Variable zu erzeugen, aber ich bin mir nicht ganz sicher, wie um dies zu realisieren.

Wieder einmal auf einer Windows-Box, mit VisualSVN. Ich entwickle auch auf einem Mac Versions.app zu verwenden, wenn es eine vertraute Schnittstelle für Menschen bietet zu beantworten:)

Bearbeiten - meine Anwendung ist eine PHP-Web-Anwendung. Als solches ist es keine Compilierung.

Danke!

War es hilfreich?

Lösung

Zur Nutzung svnversion, müssen Sie es in den Build-Prozess integrieren. Wenn Sie es auf einem Subversion-Kasse laufen, gibt er eine Zeichenfolge wie 73597:73598, was darauf hinweist, welche Version Ihr Baum hat (man beachte, dass verschiedene Dateien verschiedene Versionen haben kann, und Dateien können auch lokale Änderungen). Sie stellen so etwas wie

CFLAGS+=-DSVNVERSION="\"`svnversion`\""  

in Ihr Makefile, und dann setzen

#define VERSION_STRING "Application version" SVNVERSION ", Framework version" FRAMEWORK_VERSION

in den Code. Wenn Sie nicht machen Sie verwenden oder nicht ohne weiteres haben Ihren Build-Prozess einen Befehl, dessen Ausgang ein Compiler-Befehlszeilenoption ausführen, dann können Sie auch das SubWCRev Dienstprogramm verwenden, das mit TortoiseSVN kommt. Sie verwenden, die als Pre-Build-Schritt, und haben es mit Platzhalter in eine Kopie der Datei mit den mit der aktuellen Version ersetzt Platzhalter eine Datei umwandeln; dann Kompilierung wird die neue Datei kompiliert und verknüpfen.

Bearbeiten : Für den PHP Fall ist es nicht möglich ist, die Revision automatisch in eine Datei auf der Kasse oder Update geschrieben zu haben. Stattdessen könnten Sie svnversion auf jedem PHP-Zugang, setzt seinen Ausgang in die HTML-Antwort führen. Wem das zu teuer wird, können Sie das svnversion Ergebnis in einer Datei zwischengespeichert werden und die Datei nur regenerieren, wenn sie älter als eine Stunde ist (sagen sie), es lassen den Anwender bis zu erinnern, um die Datei nach einem Update zu löschen, um es neu zu berechnen der Cache sofort.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top