Подтвердить что ты не робот

Включить номер версии SVN в исходный код

Мои требования просты. В начале каждого файла должен быть комментарий блока следующим образом:

/*
 * This file was last modified by {username} at {date} and has revision number {revisionnumber}
 */

Я хочу заполнить {username}, {date} и {revisionnumber} соответствующим контентом из SVN.

Как я могу достичь этого с помощью NetBeans и Subversion? Я много искал, но не могу найти то, что мне нужно.

4b9b3361

Ответ 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}