Как создать шаблон сообщения фиксации SVN и перехватчик для проверки
-
13-09-2019 - |
Вопрос
Я использую сервер Visual SVN и Tortoise SVN (клиент) для управления версиями.Я хотел бы, чтобы все разработчики выработали единый формат примечаний о возврате.
Например, я хочу, чтобы их сообщение о фиксации по умолчанию было...
Краткое описание:
Имя разработчика: (предварительно заполнено)
Рассмотрено:
[Идентификатор ошибки]:
[Изменить состояние ошибки]:
Известные вопросы:
Затронутые файлы: (предварительно заполнено)
В будущем я бы хотел, чтобы [идентификатор ошибки] и [состояние ошибки] предоставляли информацию для запуска автоматического обновления системы отслеживания ошибок.Также имя разработчика и затронутые файлы должны быть предварительно заполнены пользователем svn и файлами, которые пользователь фиксирует.
Пожалуйста, пришлите любые ссылки или образцы, которые у вас могут быть.
Решение
Взято из Как создать шаблон проверки Tortoise SVN (изменено для соответствия более текущим версиям):
Шаблон журнала можно настроить в соответствии с требованиями проекта и использовать для реализации строгого формата журнала.
Добавить это в ваш репозиторий svn легко:
Выберите папку SVN, к которой вы хотите применить это, перейдите в свойства Subversion (щелкните правой кнопкой мыши
TortoiseSVN -> Properties
)Выбирать
New -> Advanced
, затемtsvn:logtemplate
из раскрывающегося списка с именемProperty name
.Добавьте приведенные выше шаблоны (или свои собственные) в текстовую область под полем со списком.
Если вы хотите применить свойство к каждому файлу и папке в иерархии ниже текущей папки, установите флажок Рекурсивно.
Нажмите на
OK
чтобы добавить это свойство в список.Зарегистрируйте все папки и файлы, чтобы все остальные члены вашей команды могли использовать один и тот же шаблон.
Другие советы
Способ сделать это с помощью командной строки — изменить переменную среды SVN_EDITOR, описанную здесь:
http://svn.haxx.se/dev/archive-2006-02/0487.shtml
SVN_EDITOR="rm svn-commit.tmp && cp $REPOS/hooks/log.tmpl svn-commit.tmp && vi svn-commit.tmp"
Или, для большего удобства SVN_EDITOR (например.правильно связываясь с рабочим элементом TFS в случае использования SvnBridge), можно сохранить следующий скрипт как ~/bin/svn_editor :
#!/bin/sh
template_file="${@}"
template_file_new="${template_file}.new"
current_work_item_number_file="${HOME}/tfs_work_item_number_current.txt"
[ -f "${current_work_item_number_file}" ] && work_item=$(cat "${current_work_item_number_file}") || work_item="please fill in!"
# Yes folks, this is the TFS convention (hard, NOT-TO-BE-ALTERED text)
# to properly link to work items via SvnBridge commits!
work_item_prefix_hard_tfs_convention_text="work item: "
work_item_text="${work_item_prefix_hard_tfs_convention_text}${work_item}"
custom_text="${work_item_text}\n\n[this addition above initially placed to ignored content part here,\nto ensure properly abortable empty message by default - please move it to active content as needed]"
sed -e 's/\(will be ignored--\)/\1\n'"${custom_text}"'/' "${template_file}" > "${template_file_new}"
mv -f "${template_file_new}" "${template_file}"
$EDITOR "${@}"
а затем просто сделай
export SVN_EDITOR=~/bin/svn_editor
в ~/.bashrc или что-то в этом роде.Бонусные баллы за обновление файла номера рабочего элемента даже с текущей страницы рабочего элемента, просматриваемой в веб-интерфейсе Firefox TFS (я думаю, что, возможно, существует способ связаться с Firefox для получения заголовков страниц и т. д.).Или просто запустите этот сценарий для запуска первого начального редактора файла постоянного рабочего элемента и затем пусть это сделает второй редактор, запущенный на настроенном шаблоне фиксации.
Я нашел это, используя:Folder right-click -> Properties -> New... -> Advanced -> Property name: tsvn:logtemplate -> enter a Property value -> OK -> OK.