Включить номер версии SVN в исходный код
Мои требования просты. В начале каждого файла должен быть комментарий блока следующим образом:
/*
* This file was last modified by {username} at {date} and has revision number {revisionnumber}
*/
Я хочу заполнить {username}
, {date}
и {revisionnumber}
соответствующим контентом из SVN
.
Как я могу достичь этого с помощью NetBeans
и Subversion
? Я много искал, но не могу найти то, что мне нужно.
Ответы
Ответ 1
Я рассмотрел этот вопрос и получил полезную информацию. Это не совсем повторяется, потому что я работаю с NetBeans
, но идея такая же. Это мой заголовок:
/*
* $LastChangedDate$
* $LastChangedRevision$
*/
Затем перейдите в Team > Subversion > Svn properties и добавьте svn:keywords
как имя свойства и LastChangedDate LastChangedRevision
в качестве значения свойства.
И когда я фиксирую из NetBeans
, он выглядит так:
/*
* $LastChangedDate: 2012-02-13 17:38:57 +0200 (Пн, 13 II 2012) $
* $LastChangedRevision: 27 $
*/
Спасибо всем за поддержку! Я приму свой ответ, потому что другие ответы не включают информацию NetBeans
. Тем не менее я даю +1
другим ответам.
Ответ 2
Поскольку эти данные существуют только после того, как файл был зафиксирован, он должен быть установлен самим SVN, а не клиентской программой. (И обработка на стороне клиента имеет тенденцию к отключению или вообще не настроен.) Это означает, что нет простого шаблона/подстановки, как вы хотите, потому что после первой замены переменные шаблона будут потеряны.
Вы можете найти информацию о замене ключевых слов SVN здесь. Тогда такие вещи, как $Rev$
, можно заменить на $Rev: 12 $
.
Ответ 3
Вы можете сделать это с помощью Программы SubWCRev.
SubWCRev - это консольная программа Windows, которая может использоваться для чтения статус рабочей копии Subversion и необязательно выполнить ключевое слово подстановка в файле шаблона. Это часто используется как часть процесс сборки как средство включения информации о рабочей копии в объект, который вы строите. Обычно это может быть использовано для введите номер версии в поле "О программе".
Это обычно выполняется во время процесса сборки.
Если вы используете Linux, вы можете найти здесь двоичный файл Linux . Если вы хотите, вы также можете написать свой собственный, используя вывод svn log
.
Ответ 4
Я следил за предложениями Петар Минчева, только я поставил $LastChangedRevision $тег не в блок комментариев, а встроил его в строку. Теперь он доступен для программного отображения номера версии в диалоговом окне "Справка → О программе".
String build = "$LastChangedRevision$";
Я могу позже отобразить значение ревизии в диалоговом окне about, используя String, у которого есть весь отпущенный пух.
String version = build.replace("$LastChangedRevision:", "").replace("$", "").trim();
Ответ 5
Я рекомендую несколько иной подход.
Поместите следующий заголовок вверху ваших исходных файлов.
/*
* This file was last modified by {username} at {date} and has revision number {revisionnumber}
*/
Затем добавьте оболочку script, подобную этой
опубликовать обновление, проверить script
USERNAME=# // use svnversion to get username
DATE=# // use svnversion to get revisio nnumber
sed -e "s#{username}#${USERNAME}#" -e "s#{date}#${DATE}#" ${SOURCE_CONTROL_FILE} > ${SOURCE_FILE}
pre commit script
cat standard_header.txt > ${SOURCE_CONTROL_FILE}
tail --lines $((${LENGTH}-4)) ${SOURCE_FILE} >> ${SOURCE_CONTROL_FILE}