Чтобы использовать svnversion, вам нужно интегрировать его в процесс сборки. Если вы запустите его на извлечении Subversion, он выведет строку типа 73597:73598
, указывающую, какая версия у вашего дерева (обратите внимание, что разные файлы могут иметь разные версии, плюс файлы могут также иметь локальные модификации). Вы положили что-то вроде
CFLAGS+=-DSVNVERSION="\"`svnversion`\""
в ваш Makefile, а затем положите
#define VERSION_STRING "Application version" SVNVERSION ", Framework version" FRAMEWORK_VERSION
в код. Если вы не используете Make или не можете с легкостью заставить ваш процесс сборки запустить команду, вывод которой выдает опцию командной строки компилятора, то вы также можете использовать утилиту subwcrev, которая поставляется с TortoiseSVN. Вы используете это в качестве шага перед сборкой, и он преобразует некоторый файл с заполнителями в копию файла с заменой заполнителей на фактическую версию; тогда ваша компиляция скомпилирует и свяжет новый файл.
Редактировать : Для случая с PHP ревизия не может быть автоматически записана в файл при извлечении или обновлении. Вместо этого вы можете запускать svnversion при каждом доступе PHP, помещая его вывод в ответ HTML. Если это становится слишком дорогим, вы можете кэшировать результат svnversion в файл и восстанавливать файл только в том случае, если он старше одного часа (скажем), оставляя пользователю возможность не забыть удалить файл после обновления, чтобы он пересчитал его заново. кеш сразу.