SubWCRev - это консольная программа Windows, которая может быть использована для чтения статуса рабочей копии Subversion и, при необходимости, для выполнения подстановки ключевых слов в шаблонных файлах. Это часто используется как часть процесса сборки, в качестве средства для внедрения информации из рабочей копии в собираемый объект. В основном это применяется для включения номера ревизии в диалог «О программе».
SubWCRev читает статус Subversion всех файлов в рабочей копии, по умлочанию исключая внешние ссылки. SubWCRev записывает наибольшую найденную ревизию и фиксирует время изменения этой ревизии, также записывается были ли локальные изменения в рабочей копии или обнвление смешанных ревизий. Номер ревизии, диапазон ревизий обновления и статус модификации выводится в stdout.
SubWCRev.exe вызывается из командной строки или скрипта и управляется при помощи параметров командной строки.
SubWCRev ПутьКРабочейКопии [Файл_Исходной_Версии Файл_Целевой_Версии] [-nmdfe]
ПутьКРабочейКопии - это путь к проверяемой рабочей копии. Вы можете вызывать SubWCRev только для рабочих копий, но не можете непосредственно для хранилища . Путь может быть как абсолютным, так и относительным к текущей рабочей папке.
Если вы желаете, чтобы SubWCRev выполняла подстановку ключевых слов, чтобы поля вроде ревизии из хранилища и адреса URL сохранялись в текстовый файл, вы должны предоставить шаблонный Файл_Исходной_Версии и выходной Файл_Целевой_Версии, который будет содержать версию шаблона с произведёнными подстановками.
Вы можете указать шабоны игнорирования для SubWCRev, чтобы исключить определенные файлы и папки из наблюдения. Шаблоны считываются из файла с именем .subwcrevignore. Файл считывается из определенной папки, а также из корневой папки рабочей копии. Если файл не существует, то никакие файлы и папки не игнорируются. Файл .subwcrevignore может содержать несколько шаблонов, разделенных новой строкой. Шаблоны сопоставляются с путями корня хранилища и с путями каталога, где находится файл .subwcrevignore. Например, для игнорирования всех файлов в папке doc рабочей копии TortoiseSVN файл .subwcrevignore должен содержать следующие строки:
/trunk/doc /trunk/doc/*
Или, если файл .subwcrevignore извлечен из trunk и находится в корне рабочей копии, то он должен содержать шаблоны
doc 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. |