Глава 6. Программа SubWCRev

Содержание

Командная строка SubWCRev
Подстановка ключевых слов
Пример для ключевых слов
COM-интерфейс

SubWCRev - это консольная программа Windows, которая может быть использована для чтения статуса рабочей копии Subversion и, при необходимости, для выполнения подстановки ключевых слов в шаблонных файлах. Это часто используется как часть процесса сборки, в качестве средства для внедрения информации из рабочей копии в собираемый объект. В основном это применяется для включения номера ревизии в диалог «О программе».

Командная строка SubWCRev

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

SubWCRev.exe вызывается из командной строки или скрипта и управляется при помощи параметров командной строки.

SubWCRev ПутьКРабочейКопии [Файл_Исходной_Версии Файл_Целевой_Версии] [-nmdfe]

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

Если вы желаете, чтобы SubWCRev выполняла подстановку ключевых слов, чтобы поля вроде ревизии из хранилища и адреса URL сохранялись в текстовый файл, вы должны предоставить шаблонный Файл_Исходной_Версии и выходной Файл_Целевой_Версии, который будет содержать версию шаблона с произведёнными подстановками.

Вы можете определить шаблоны игнорирования для SubWCRev, чтобы предотвратить определенные файлы и пути от рассмотрения. Эти шаблоны читаются из файла называющегося .subwcrevignore. Файл читается из указанного пути, а также из корня рабочей копии. Если файл не существует, ни один файл или путь не игнорируется. Файл .subwcrevignore может содержать несколько шаблонов, разделенных символами новой строки. Шаблоны сопоставляются с путями относительно корня хранилища. Например, для игнорирования всех файлов в папке doc рабочей копии TortoiseSVN, файл .subwcrevignore мог бы содержать следующие строки:

/trunk/doc
/trunk/doc/*

Для игнорирования всех изображений шаблон игнорирования может быть настроен так:

*.png
*.jpg
*.ico
*.bmp

Важно

Шаблоны игнорирования чувствительны к регистру, также как в Subversion.

Подсказка

Чтобы создать файл с начальной точкой в проводнике Windows введите .subwcrevignore.. Обратите внимание на точку в конце.

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

Таблица 6.1. Список доступных параметров командной строки

ПараметрОписание
-nЕсли указан данный параметр, SubWCRev будет завершаться с ERRORLEVEL 7, если рабочая копия содержит локальные изменения. Это может быть использовано для предотвращения сборки в случае наличия незафиксированных изменений.
-NЕсли указан данный параметр, SubWCRev будет завершаться с ERRORLEVEL 11, если рабочая копия содержит неверсированные элементы, которые не игнорируются.
-mЕсли указан этот параметр, SubWCRev будет завершаться с ERRORLEVEL 8, если рабочая копия содержит смешанные ревизии. Это может использоваться для предотвращения сборки в случае частично обновленной рабочей копии.
-dЕсли указан этот параметр, SubWCRev будет завершаться с ERRORLEVEL 9, если целевой файл уже существует.
-fЕсли указан этот параметр, SubWCRev будет включать ревизию последнего изменения папки. Поведение по умолчанию - использовать при получении номеров ревизий только файлы.
-eЕсли указан этот параметр, SubWCRev будет проверять папки, включённые при помощи svn:externals, но только если они из того же хранилища. Поведение по умолчанию - игнорировать внешние включения.
-EЕсли указан ключ, такой как -e, то внешние и явные изменения игнорируются, в случае если эти изменения - внешние изменения в параметрах.
-xЕсли указан этот параметр, SubWCRev будет выводить номера ревизий в шестнадцатеричном виде.
-XЕсли указан этот параметр, SubWCRev будет выводить номера ревизий в шестнадцатеричном виде, с префиксом '0X'.
-FЕсли задан этот переключатель, SubWCRev будет игнорировать любые .subwcrevignore файлы и включит все файлы.
-qЕсли указан данный параметр, SubWCRev выполнит подстановку ключевых слов без вывода статуса рабочей копии в stdout.


Если ошибок нет, то SubWCRev возвращает ноль. Но, в случае возникновения ошибки сообщение об ошибке пишется в stderr и выводится на консоль. Возвращаемые коды ошибок следующие:

Таблица 6.2. Список кодов ошибок SubWCRev

Код ошибкиОписание
1Ошибка синтаксиса. Один или несколько параметров в командной строке неверны.
2Файл или папка указанные в команде не были найдены
3Входной файл не может быть открыт, или целевой файл не может быть создан.
4Не удалось выделить память. Это может произойти если, например, исходный файл слишком большой.
5Исходный файл не может быть проверен должным образом.
6Ошибка SVN: Subversion вернул ошибку когда SubWCRev пытался получить информацию из рабочей копии.
7В рабочей копии есть локальные изменения. Требуется параметр -n.
8В рабочей копии есть смешанные ревизии. Требуется параметр -m.
9Выходной файл уже существует. Требуется параметр -d.
10Указанный путь не является рабочей копией или её частью.
11В рабочей копии имеются неверсированные файлы или папки. Требуется параметр -N.