Как создать шаблон сообщения фиксации SVN и хук для проверки

Я использую Visual SVN Server и Tortoise SVN (клиент) для управления версиями. Я бы хотел, чтобы все разработчики стандартизировали единый формат заметок о проверке.

Например, я хочу, чтобы их сообщение фиксации по умолчанию было...

Сводка:

Имя разработчика: (предварительно заполнено)

Рассмотрено:

[Идентификатор ошибки]:

[Изменить состояние ошибки]:

Известные проблемы:

Затронутые файлы: (предварительно заполнено)

В будущем я хотел бы, чтобы [Bug Id] и [Bug State] предоставляли информацию для автоматического обновления системы отслеживания ошибок. Кроме того, имя разработчика и затронутые файлы должны быть предварительно заполнены пользователем svn и файлами, которые пользователь фиксирует.

Пожалуйста, пришлите любые ссылки или образцы, которые у вас могут быть.


person Justin    schedule 11.06.2009    source источник
comment
Затронутые файлы и, возможно, также имя разработчика не должны быть в сообщении фиксации, поскольку они надежно находятся во встроенных метаданных фиксации.   -  person Kevin Reid    schedule 03.05.2010


Ответы (4)


Взято из Как создать Tortoise SVN Checkin Template (изменено, чтобы соответствовать более современным версиям):

Шаблон журнала можно настроить в соответствии с требованиями проекта и использовать для реализации строгого формата журнала.

Добавить это в ваш репозиторий svn очень просто:

  1. Выберите папку SVN, к которой вы хотите применить это, перейдите в свойства Subversion (щелкните правой кнопкой мыши TortoiseSVN -> Properties)

  2. Выберите New -> Advanced, затем tsvn:logtemplate из выпадающего списка с именем Property name.

  3. Добавьте приведенные выше шаблоны (или свои собственные) в текстовую область под полем со списком.

  4. Если вы хотите применить свойство к каждому файлу и папке в иерархии ниже текущей папки, установите флажок Рекурсивно.

  5. Щелкните OK, чтобы добавить это свойство в список.

  6. Зарегистрируйте все папки и файлы, чтобы все члены вашей команды могли использовать один и тот же шаблон.

person Justin    schedule 24.06.2009
comment
Было немного сложно найти, но думаю, этого следовало ожидать почти 4 года спустя :) Я нашел его, используя: Щелчок правой кнопкой мыши по папке -> Свойства -> Создать... -> Дополнительно -> Имя свойства: tsvn:logtemplate -> введите значение свойства -> OK -> OK. Рекурсивный вариант, похоже, не имел значения ни при применении, ни при удалении этого шаблонного значения свойства. Большое спасибо adrainbanks (даже спустя 4 года!). - person Keith DC; 27.03.2013
comment
Рекурсивный параметр имеет значение только в том случае, если вы не извлекаете корневую папку (где свойство было установлено только). Все свойства tsvn являются свойствами клиента, поэтому связь с сервером для чтения свойств не выполняется. - person mliebelt; 10.06.2014
comment
Ссылка гниль. Новая ссылка: tortoisesvn.net/docs/release/TortoiseSVN_en/ - person Jeff Walker; 21.06.2017

Один из способов сделать это с помощью командной строки — изменить переменную среды 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"
person purecharger    schedule 03.02.2010

Или, для дополнительного удобства 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, чтобы получить заголовки страниц и т. д.). Или просто запустите этот скрипт, чтобы запустить первый начальный редактор для файла постоянного рабочего элемента, а затем затем запустить второй редактор для настроенного шаблона фиксации.

person JoeRandomUser    schedule 12.04.2012

Я нашел это, используя: Folder right-click -> Properties -> New... -> Advanced -> Property name: tsvn:logtemplate -> enter a Property value -> OK -> OK.

person Safa    schedule 14.12.2015