Установки проекта

Свойства Subversion

Рисунок 4.35. Страница свойств Subversion

Страница свойств Subversion


Вы можете вызвать диалог для просмотра и установки свойств Subversion не только из диалога свойств Проводника Windows, но и также из TortoiseSVNСвойства, и из списков состояния в различных диалогах TortoiseSVN, при помощи Контекстное менюСвойства.

Вы можете добавить ваши собственные свойства, а также некоторые свойства, имеющие специальное значение в Subversion. Такие свойства начинаются с svn:. Одним из таких свойств является svn:externals; посмотреть, как обращаться с внешними включениями, можно в «Внешние включения».

Ключевые слова, начинающиеся с svn:

Subversion поддерживает подстановку ключевых слов в стиле CVS, для внесения имени файла и информации о ревизии внутрь самого этого файла. Ключевые слова, поддерживаемые в данный момент:

$Date$

Дата последней известной фиксации. Основывается на информации, полученной при обновлении рабочей копии. Хранилище не проверяется на наличие более поздних изменений.

$Revision$

Ревизия последней известной фиксации.

$Author$

Автор, выполнивший последнюю известную фиксацию.

$HeadURL$

Полный URL этого файла в хранилище.

$Id$

Сжатое сочетание предыдущих четырёх ключевых слов.

Чтобы узнать, как использовать эти ключевые слова, взгляните на svn:keywords section (раздел о svn:keywords) в Книге о Subversion, в котором приведено полное описание этих ключевых слов, и также информация о том, как их задействовать и как использовать.

Чтобы больше узнать о свойствах в Subversion, прочтите Special Properties (Специальные свойства).

Добавление и редактирование свойств

Рисунок 4.36. Добавление свойств

Добавление свойств


Для добавления нового свойства нажмите Создать.... Выберите требуемое имя свойства из меню, затем введите нужную информацию в диалоге конкретного свойства. Диалоги свойств более подробно описаны в «Свойства».

Чтобы добавить свойство, которое не имеет собственного диалога, выберите Дополнительно из меню Создать.... Затем либо выберите существующее свойство из выпадающего списка, либо введите пользовательское имя свойства.

Если хотите применить свойство ко многим элементам за один раз, то выберите файлы/папки в проводнике, потом выберите меню Context menuсвойства.

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

Если вы желаете отредактировать существующее свойство, выберите это свойство из списка существующих свойств, после чего нажмите Исправить....

Если вы желаете удалить существующее свойство, выберите это свойство из списка существующих свойств, после чего нажмите на Удалить.

Свойство svn:externals может быть использовано для включения других проектов из того же хранилища или же совсем другого хранилища. Чтобы больше узнать об этом, прочтите «Внешние включения».

Редактировать свойства HEAD ревизии

Так как свойства версируются, вы не можете редактировать свойства предыдущих ревизий. Если вы смотрите свойства из диалога журнала или из не-HEAD ревизии в обозревателе хранилища, то вы увидите список свойств и значений без кнопок редактирования.

Экспорт и импорт свойств

Часто вам приходиться применять один и тот же набор свойств множество раз, например, свойство bugtraq:logregex. Для упрощения процесса копирования свойств из одного проекта в другой, можно воспользоваться возможностью экспорта/импорта.

Для файла или папки, у которых нужные свойства уже установлены, вызовите TortoiseSVNСвойства, выберите свойства, которые вы желаете экспортировать, и щёлкните на Экспорт... У вас будет запрошено имя файла, в который будут сохранены имена и значения свойств.

Для папок, к которым вы желаете применить эти свойства, вызовите TortoiseSVNСвойства и щёлкните на Импорт.... У вас будет запрошено имя файла, из которого будет производиться импорт, поэтому перейдите к месту, где вы до этого сохранили файл экспорта, и выберите его. Свойства будут добавлены к папкам нерекурсивно.

Если вы желаете добавить свойства к дереву рекурсивно, выполните вышеуказанные шаги, после чего в диалоге свойств выберите каждое свойство по очереди, щёлкните на Исправить..., отметьте флажок Применить свойство рекурсивно и щёлкните на ОК.

Формат файла импорта является двоичным и внутренним для TortoiseSVN. Его единственное предназначение - перенос свойств при помощи импорта и экспорта, поэтому не нужно редактировать эти файлы.

Двоичные свойства

TortoiseSVN может работать с двоичными свойствами при помощи файлов. Для считывания двоичного значения свойства, выполните Сохранить... это значение в файл. Для установки двоичного свойства, используйте шестнадцатеричный редактор или другой подходящий инструмент для создания файла с требуемым содержимым, а потом вы можете Загрузить... значение свойства из этого файла.

Хотя двоичные свойства не так уж часто используются, они могут оказаться полезными для некоторых применений. Например, если вы храните огромные графические файлы, или если приложение, используемое для загрузки файла, слишком велико, вы можете сохранить миниатюру в свойстве для того, чтобы можно было быстро выполнить предварительный просмотр.

Автоматическая установка свойств

Вы можете настроить Subversion и TortoiseSVN так, чтобы при добавлении файлов и папок в хранилище свойства для них устанавливались бы автоматически. Есть два способа это сделать:

Вы можете отредактировать файл настроек Subversion для включения этой функции в вашем клиенте. Во вкладке Общее в диалоге настроек TortoiseSVN есть кнопка 'Правка', открывающая этот файл. Файл настроек является простым текстовым файлом, управляющим работой некоторых функций Subversion. Вам надо изменить две вещи: сначала в разделе miscellany разкомментируйте строчку enable-auto-props = yes. Затем вам необходимо будет отредактировать раздел ниже для указания того, какие свойства к каким типам файлов надо добавлять. Этот метод является стандартной возможностью Subversion и работает в любом клиенте Subversion. Однако, он должен быть определён на каждом клиенте индивидуально - нет способа распространять эти настройки из хранилища.

Другой метод - установить свойство tsvn:autoprops на папках, как описано в следующем разделе. Этот способ работает только с клиентами TortoiseSVN, зато с его помощью автосвойства можно распространить во все рабочие копии при обновлении.

Начиная с Subversion 1.8, вы можете также установить свойство svn:auto-props на корневой папке. Значение свойства автоматически будет унаследовано всеми дочерними элементами.

Какой бы метод вы ни выбрали, имейте ввиду, что auto-props применяется к файлам только в момент добавления в рабочую копию. Auto-props никогда не изменит свойства уже версированных файлов.

Если вы желаете быть абсолютно уверенными, что к новым файлам применяются правильные свойства, вы должны настроить в хранилище ловушку перед-обновлением для отклонения фиксаций, в которых не установлены обязательные свойства.

Фиксируйте свойства

В Subversion свойства являются версированными. После изменения или добавления свойства, вы должны зафиксировать ваши изменения.

Конфликты в свойствах

Если при фиксации изменений возникает конфликт из-за того, что другой пользователь изменил то же свойство, Subversion создаёт файл с расширением .prej. Удалите этот файл после улаживания конфликта.

Свойства проекта в TortoiseSVN

TortoiseSVN имеет несколько собственных специальных свойств, и они начинаются с tsvn:.

  • tsvn:logminsize устанавливает минимальную длину сообщения журнала при фиксации. Если вы введёте сообщение короче, чем здесь указано, фиксация будет невозможна. Эта возможность очень полезна для напоминания вам о необходимости указания надлежащего сообщения с описанием для каждой фиксации. Если это свойство не установлено, или его значение равно нулю, допустимы пустые сообщения журнала.

    tsvn:lockmsgminsize устанавливает минимальную длину сообщения блокирования. Если вы введёте сообщение короче, чем здесь указано, блокирование будет невозможно. Эта возможность очень полезна для напоминания вам о необходимости указания надлежащего сообщения с описанием для каждой получаемой вами блокировки. Если это свойство не установлено, или его значение равно нулю, допустимы пустые сообщения блокирования.

  • tsvn:logwidthmarker используется с проектами, требующими, чтобы строки в сообщении журнала не превышали некоторой максимальной длины (обычно 80 символов) до перевода строки. Установка этого свойства в ненулевое значение приводит к двум вещам в диалоге ввода сообщения журнала: помещает маркер для обозначения максимальной длины и запрещает перенос слов при отображении, так чтобы вы могли увидеть, не слишком ли длинный текст вы ввели. Обратите внимание: это свойство правильно работает, только если вы используете моноширинный шрифт (с фиксированной длиной символов) для сообщений журнала.

  • tsvn:logtemplate используется с проектами, в которых установлены правила форматирования сообщений журнала. Свойство содержит многострочный текст, который будет вставлен в поле ввода сообщения при начале фиксации. Затем вы можете изменить его для внесения нужной информации. Обратите внимание: если вы также используете tsvn:logminsize, убедитесь, что установили в нём длину, превышающую шаблон, или вы утратите этот механизм защиты.

    Также есть шаблоны специфичные для действий, которые вы можете использовать вместо tsvn:logtemplate. Шаблоны специфичные для действий используются когда они заданы, но если не заданы, то будет использован tsvn:logtemplate.

    Возможные значения:

    • tsvn:logtemplatecommit используется для всех фиксаций из рабочей копии.

    • tsvn:logtemplatebranch используется когда вы создаете ответвление/метку или когда копируете файлы или папки прямо в обозревателе хранилища.

    • tsvn:logtemplateimport используется для импорта.

    • tsvn:logtemplatedelete используется при удалении элементов прямо в обозревателе хранилища.

    • tsvn:logtemplatemove используется при переименовании или перемещении элементов прямо в обозревателе хранилища.

    • tsvn:logtemplatemkdir используется при создании директорий в обозревателе хранилища.

    • tsvn:logtemplatepropset используется при изменении свойств в обозревателе хранилища.

    • tsvn:logtemplatelock используется при получении блокировки.

  • В Subversion есть возможность задавать «автосвойства» (autoprops), которые будут применяться к свежедобавленным или импортированным файлам, исходя из их расширений. Для корректной работы этой возможности необходима установка соответствующих автосвойств у каждого клиента в его файле настроек Subversion. Автосвойства tsvn:autoprops можно установить на папках, и тогда они будут объединяться с локальными автосвойствами пользователя при импорте или добавлении файлов. Формат такой же, как и для автосвойств Subversion, например, *.sh = svn:eol-style=native;svn:executable устанавливает два свойства на файлах с расширением .sh

    Если возникает конфликт между локальными автосвойствами и tsvn:autoprops, преимущество имеют настройки проекта, поскольку они предназначены специально для этого проекта.

    Начиная с Subversion 1.8, вы должны использовать свойство svn:auto-props вместо tsvn:autoprops, т.к. оно имеет ту же функциональность, но работает со всеми svn-клиентами, а не только в TortoiseSVN.

  • В диалоге фиксации есть возможность вставки в буфер обмена списка изменённых файлов вместе со статусом каждого файла (добавленный, измененный и т.п.). tsvn:logfilelistenglish определяет, будет ли состояние файлов указано на английском языке или локализовано. Если свойство не установлено, по умолчанию используется true.

  • TortoiseSVN может использовать модули проверки орфографии, которые применяются также в OpenOffice и Mozilla. Если эти приложения у вас уже установлены, это свойство определяет, какой из модулей проверки использовать, т.е. на каком языке будут написаны сообщения журнала в вашем проекте. Свойство tsvn:projectlanguage задаёт языковой модуль, который будет использоваться для проверки орфографии при вводе сообщений журнала. Вы можете найти значения для вашего языка на этой странице: MSDN: Language Identifiers.

    Вы можете ввести это значение в десятичной или шестнадцатеричной системе, для шестнадцатеричной используйте префикс 0x. Например, американский английский может быть введён как 0x0409 или как 1033 [3].

  • Свойство tsvn:logsummary применяется для извлечения части сообщения журнала, которая будет показана в диалоге журнала как краткая сводка этого полного сообщения.

    Значение свойства tsvn:logsummary должно содержать однострочное регулярное выражение, состоящее из одной группы. То, что соответствует этой группе, используется в качестве сводки.

    Например: \[SUMMARY\]:\s+(.*) возьмёт всё после «[SUMMARY]» из сообщения журнала и это будет использовано как сводка.

  • Свойство tsvn:logrevregex задаёт регулярное выражение, соответствующее ссылкам на ревизии в сообщении журнала. Это используется в диалоге журнала, позволяя при щелчке по такой ссылке перейти к указанной ревизии либо в том же окне (если ревизия уже отображается в диалоге журнала, или находится в кэше сообщений), либо открыть новый диалог журнала, показывающий эту ревизию.

    Это регулярное выражение должно соответствовать ссылке целиком, а не только номеру ревизии. Номер ревизии извлекается из обнаруженной строки ссылки автоматически.

    Если это свойство не задано, для создания ссылок на ревизии используется регулярное выражение по умолчанию.

  • Существуют несколько свойств для конфигурирования клиентских скриптов обработчиков. Каждое свойство для определенного типа скрипта обработчика.

    Доступные параметры/обработчики

    • tsvn:startcommithook
    • tsvn:precommithook
    • tsvn:postcommithook
    • tsvn:startupdatehook
    • tsvn:preupdatehook
    • tsvn:postupdatehook

    Параметры такие же, как если бы вы сконфигурировали скрипты обработчиков в диалоге настроек. Более подоробно см. «Скрипты ловушек, выполняемые на стороне клиента».

    Так как не каждый пользователь имеет свою рабочую копию извлечённую и размещённую в одном и том же месте и с тем же самым именем, то вы можете сконфигурировать выполняемый скрипт/инструмент, который размещён в вашей рабочей копии указав адрес URL в хранилище, используя %REPOROOT% как часть URL для указания корня хранилища. Например, если ваш скрипт-обработчик в вашей рабочей копии в contrib/hook-scripts/client-side/checkyear.js, то вы должны указать путь к скрипту как %REPOROOT%/trunk/contrib/hook-scripts/client-side/checkyear.js. Таким образом, даже если вы переместите ваше хранилище на другой сервер, вам не надо исправлять свойства скрипта-обработчика.

    Вместо переменной %REPOROOT% вы также можете указать %REPOROOT+%. Символ + используется для вставки любого количества путей к папке, необходимое для поиска скриптом. Это полезно, если вы хотите создать скрипт, который бы находил рабочую копию даже при при создании отдельной ветки и изменения её url. Пример использования: %REPOROOT+%/contrib/hook-scripts/client-side/checkyear.js.

    Следующий скриншот демонстрирует как в TortoiseSVN сконфигурирован скрипт для проверки года авторского права в заголовках файлов исходников.

  • Когда вы желаете добавить новое свойство, вы можете либо выбрать одно из выпадающего списка, либо вы можете ввести любое другое понравившееся имя для свойства. Если ваш проект использует несколько собственных свойств, и вы хотите, чтобы эти свойства появились в выпадающем списке (для избежания опечаток при вводе имени свойства), вы можете создать список ваших собственных свойств при помощи tsvn:userfileproperties и tsvn:userdirproperties. Примените эти свойства к папке. Когда вы будете редактировать свойства любого дочернего элемента, ваши собственные свойства появятся в списке среди предопределённых имён свойств.

    Вы также можете указать, используется ли специальный диалог для добавления/редактирования свойства. TortoiseSVN предлагает четыре различных диалога, в зависимости от типа вашего свойства.

    bool

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

    Рисунок 4.37. Диалог свойства пользовательских булевых типов

    Диалог свойства пользовательских булевых типов


    Определите ваше свойство вот так:

    propertyname=bool;labeltext(YESVALUE;NOVALUE;Checkboxtext)

    labeltext — это текст, отображаемый в диалоге над флажком, в котором вы можете пояснить назначение и использование свойства. Остальные параметры говорят сами за себя.

    state

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

    Рисунок 4.38. Диалог свойства пользовательских типов состояния

    Диалог свойства пользовательских типов состояния
    Диалог свойства пользовательских типов состояния
    Диалог свойства пользовательских типов состояния


    вот так:

    propertyname=state;labeltext(DEFVAL;VAL1;TEXT1;VAL2;TEXT2;VAL3;TEXT3;...)

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

    Для не более трёх разных значений в диалоге отображается до трёх переключателей. Если сконфигурировано больше значений, то используется выпадающий список, из которого пользователь может выбрать нужное состояние.

    singleline

    Для свойств, которые состоят из одной строки текста используйте свойство типа однострочный:

    Рисунок 4.39. Диалог свойства пользовательских однострочных типов

    Диалог свойства пользовательских однострочных типов


    propertyname=singleline;labeltext(regex)

    regex определяет регулярное выражение, которое используется для проверки соответствия введенного пользователем текста. Если текст не соответствует регулярному выражению, то пользователю показывается ошибка и свойство не устанавливается.

    multiline

    Для свойств, которые состоят из множества строк текста, используйте свойство типа многострочный:

    Рисунок 4.40. Диалог свойства пользовательских многострочных типов

    Диалог свойства пользовательских многострочных типов


    propertyname=multiline;labeltext(regex)

    regex определяет регулярное выражение, которое используется для проверки соответствия введенного пользователем текста. Не забывайте добавлять символ новой строки (\n) в регулярное выражение!

    Приведенные выше скриншоты были сделаны со следующими свойствами tsvn:userdirproperties:

    my:boolprop=bool;This is a bool type property. Either check or uncheck it.(true;false;my bool prop)
    my:stateprop1=state;This is a state property. Select one of the two states.(true;true;true value;false;false value)
    my:stateprop2=state;This is a state property. Select one of the three states.(maybe;true;answer is correct;false;answer is wrong;maybe;not answered)
    my:stateprop3=state;Specify the day to set this property.(1;1;Monday;2;Tuesday;3;Wednesday;4;Thursday;5;Friday;6;Saturday;7;Sunday)
    my:singlelineprop=singleline;enter a small comment(.*)
    my:multilineprop=multiline;copy and paste a full chapter here(.*)
                

TortoiseSVN может интегрироваться с некоторыми средствами отслеживания ошибок. При этом используются свойства проекта, начинающиеся с bugtraq:. Прочтите «Интеграция с системами отслеживания ошибок/проблем» для дополнительной информации.

TortoiseSVN также может интегрироваться с некоторыми работающими через веб-интерфейс средствами просмотра хранилища, используя для этого свойства, начинающиеся с webviewer:. Прочтите «Интеграция со средствами просмотра хранилища, работающими через веб-интерфейс» для дополнительной информации.

Устанавливайте свойства проекта на папках

Для того чтобы система работата, эти специальные свойства проекта должны быть установлены на папках. Когда вы используете команду TortoiseSVN, которая использует эти свойства, свойства читаются из папки на которой вы кликнули. Если там свойства не найдены, то TortoiseSVN будет искать вверх по дереву папок пока не дойдет до неверсированной папки или корня дерева (например, C:\). Если вы можете быть уверены, что каждый пользователь извлекает только из, допустим, trunk/, а не какой-то подпапки, тогда достаточно установить свойства для trunk/. Если вы не можете быть в этом уверены, то вы должны установить свойства рекурсивно для каждой подпапки. Если вы устанавливаете одно и то же свойство, но используете разные значения на разных уровнях иерархии проекта, то в зависимости от того где кликните в структуре папок вы получите разные результаты.

Только для свойств проекта, т.е. для tsvn:, bugtraq: и webviewer:, вы можете использовать флажок Рекурсивно для установки свойства для всех подпапок в иерархии, без установки его также для всех файлов.

Если вы добавляете новые подпапки в рабочую копию используя TortoiseSVN, то любые свойства проекта, заданные в родительской папке, будут автоматически добавлены в новые дочерние папки.

Ограничения по использованию обозревателя хранилища

Удаленная выборка свойств может занять много времени, поэтому некоторые из свойств описанных выше не будут работать в обозревателе хранилища так, как они работают в рабочей копии.

  • Если вы добавляете свойство используя обозреватель хранилища, то только стандартные svn: свойства будут доступны на выбор в предопределённом списке. Любое другое имя свойства должно быть добавлено вручную.

  • Свойства не могут быть заданы или удалены рекурсивно с помощью обозревателя хранилища.

  • Свойства проекта НЕ будут автоматически скопированы, если дочерняя папка добавляется посредством обозревателя хранилища.

  • Свойство tsvn:autoprops НЕ задает свойства файлам, добавляемых посредством обозревателя хранилища.

Внимание

Хотя свойства проекта, реализованные в TortoiseSVN, исключительно полезны, они работают только c TortoiseSVN, и некоторые из них будут работать только в свежих версиях TortoiseSVN. Если люди, работающие над вашим проектом, пользуются также и другими клиентами Subversion, или, быть может, у них установлены старые версии TortoiseSVN, то, возможно, лучше использовать ловушки на стороне хранилища для принудительного применения политик проекта. Свойства проекта могут только помочь выполнить политику, но они не могут принудительно применить её.

Свойства

Некоторые свойства должны использовать определенные значения или должны быть отформатированы особым образом, чтобы быть использованными автоматически. Чтобы упростить получение правильного форматирования некоторых свойств TortoiseSVN предоставляет диалоги редактирования, которые показывают возможные значения или разбивают свойство на отдельные компоненты.

Внешнее содержимое

Рисунок 4.41. страница свойств svn:externals

страница свойств svn:externals


Свойство svn:externals может быть использовано для втягивания других проектов из того же хранилища или из совсем другого хранилища, как это описано в «Внешние включения».

Вам необходимо определить имя подпапки, в которую извлекается внешняя папка, и URL-адрес внешнего элемента. Вы можете извлекать внешний элемент с ревизии HEAD, так что при изменении внешнего элемента в хранилище ваша рабочая копия получит эти изменения при обновлении. Однако, если вы хотите, чтобы внешний элемент ссылался на определенную постоянную точку, то вы можете указать определенную ревизию. В этом случае вы возможно захотите указать ту же ревизию как опорную (peg) ревизию. Если внешний элемент переименован в какой-то момент в будущем, то Subversion не сможет обновить этот элемент в вашей рабочей копии. Указывая опорную (peg) ревизию вы сообщаете Subversion, что надо искать элемент по имени в опорной (peg) ревизии, а не в ревизии HEAD.

Кнопка Найти HEAD-ревизию получает ревизию HEAD для каждого URL-адреса внешнего определения и показывает эту HEAD ревизию в самой правой колонке. После того, как ревизия HEAD известна, простой правый клик на внешнем определении даёт возможность установить опорную (peg) ревизию выбранного внешнего определения на явную ревизию HEAD. В случае если ревизия HEAD не известна, то команда по правому клику сначала получит ревизию HEAD.

Ключевые слова SVN

Рисунок 4.42. страница свойств svn:keywords

страница свойств svn:keywords


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

Стиль переноса строк

Рисунок 4.43. страница свойств svn:eol-style

страница свойств svn:eol-style


Выберите какой стиль окончания строки вы хотите использовать и TortoiseSVN будет использовать правильное значение свойства.

Интеграция с системами отслеживания проблем

Рисунок 4.44. страница свойств tsvn:bugtraq

страница свойств tsvn:bugtraq


Размеры журнала сообщений

Рисунок 4.45. Страница свойств размер журнала сообщений

Страница свойств размер журнала сообщений


Эти 3 свойства управляют форматированием сообщений журнала. Первые 2 отключают OK в диалогах фиксации или блокировки до тех пор, пока сообщение меньше заданной длины. Позиция границы показывает маркер в заданной ширине колонки в качестве руководства для проектов, в которых есть пределы ширины для сообщений журнала. Установка значения в ноль удалит свойство.

Язык проекта

Рисунок 4.46. Страница свойств язык

Страница свойств язык


Выберите язык для проверки орфографии в сообщениях журнала в диалоге фиксации. Флажок списки файлов срабатывает когда вы делаете правый клик в панели сообщения журнала и выбираете Вставить список имен фалов. По умолчанию статус Subversion отображается на локальном языке. Когда этот флажок установлен, то статус всегда будет на английском для проектов, которым требуются неанглийские сообщения журнала.

MIME-type

Рисунок 4.47. Страница свойств svn:mime-type

Страница свойств svn:mime-type


svn:needs-lock

Рисунок 4.48. Страница свойств svn:needs-lock

Страница свойств svn:needs-lock


Это свойство просто определяет будет ли файл извлечен с атрибутом "только чтение" если на него нет блокировки в рабочей копии.

svn:executable

Рисунок 4.49. Страница свойств svn:executable

Страница свойств svn:executable


Это свойство определяет будет ли файл отмечен как исполняемый при извлечении на системах Unix/Linux. Оно не имеет эффекта при извлечении на Windows.

Шаблоны сообщения журнала для слияния

Всякий раз, когда ревизии объединяются в рабочей копии, TortoiseSVN создает сообщение журнала из всех объединённых ревизий. Они потом доступны по кнопке Недавние сообщения в диалоге фиксации.

Вы можете настроить это созданное сообщение следующими свойствами:

Рисунок 4.50. Диалог свойства шаблонов сообщения журнала для слияния

Диалог свойства шаблонов сообщения журнала для слияния


tsvn:mergelogtemplatetitle, tsvn:mergelogtemplatereversetitle

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

{revisions}

Список объединённых ревизий, разделенный запятыми, например, 3, 5, 6, 7

{revisionsr}

Также как {revisions}, но каждая ревизия начинается с r, например, r3, r5, r6, r7

{revrange}

Список объединённых ревизий, разделенный запятыми, при возможности объединённый в диапазоны, например, 3, 5-7

{mergeurl}

Исходный URL-адрес слияния, т.е. откуда объединяются ревизии.

Значение по умолчанию для этой строки Объединены ревизии {revrange} из {mergeurl}: с символом новой строки в конце.

tsvn:mergelogtemplatemsg

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

{msg}

Сообщение журнала объединённой ревизии, как оно было введено.

{msgoneline}

Также как {msg}, но все символы новой строки заменены на пробелы так, что всё сообщение целиком размещается в одну строку.

{author}

Автор объединённой ревизии.

{rev}

Сама объединённая ревизия.

{bugids}

Идентификаторы (ID) ошибок объединённой ревизии, если таковые есть.

tsvn:mergelogtemplatemsgtitlebottom

Это свойство устанавливает позицию строки заголовка заданного в tsvn:mergelogtemplatetitle или tsvn:mergelogtemplatereversetitle. Если свойство установлено в да или истина, то строка заголовка добавляется снизу вместо верха.

Важно

Это работает только, если объединённые ревизии уже в кэше журнала. Если вы отключили кэш журнала или не просматривали журнал перед слиянием, то созданное сообщение не будет содержать информацию об объединённых ревизиях.



[3] Для русского значения будут 0x0419 и 1049, соответственно - прим. переводчика