Поскольку всеми командами TortoiseSVN можно управлять при помощи параметров командной строки, вы можете использовать их для автоматизации в пакетных скриптах или же запустить конкретную команду и диалог из других программ (например, из вашего любимого текстового редактора).
Помните, что TortoiseSVN является клиентом с графическим интерфейсом пользователя, и это руководство по автоматизации показывает, как показывать диалоги TortoiseSVN для получения пользовательского ввода. Если вы хотите написать скрипт, который не требует ввода, вы должны использовать официальный клиент Subversion для командной строки.
Программа, отображающая интерфейс пользователя TortoiseSVN, называется TortoiseProc.exe. Все команды указываются с параметрами /command:abcd, где abcd - это обязательное имя команды. Большинству из этих команд необходим как минимум один параметр с именем пути, задаваемый при помощи /path:"некоторый\путь". В следующей таблице 'команда' обозначает параметр /command:abcd и 'путь' обозначает параметр /path:"некоторый\путь".
Так как некоторые команды могут принимать список целевых путей (например, фиксация нескольких конкретных файлов) в параметре /path можно задать несколько путей, разделённых символом *.
Вы также можете указать файл, содержащий список путей, разделенных переносами строк. Файл должен быть в формате UTF-16, без маркера BOM. Если вы передаете такой файл, то используйте /pathfile вместо /path. Чтобы TortoiseProc удалял этот файл после завершения команды, вы можете передать параметр /deletepathfile.
Окно выполнения, используемое при фиксации, обновлении и множестве других команд, обычно остаётся открытым после завершения команды до тех пор, пока пользователь не нажмёт кнопку . Это может быть изменено установкой соответствующего параметра в диалоге настроек. Но использование этой настройки будет закрывать окно выполнения независимо от того, запущена ли команда из вашего пакетного командного файла или из контекстного меню TortoiseSVN.
Для указания другого местоположения конфигурационного файла, используйте параметр /configdir:"путь\до\конигурационной\папки". Это переопределит путь по умолчанию, в том числе и установку из реестра.
Для автоматического закрытия окна выполнения по окончанию команды без предварительного постоянного изменения настройки вы можете указать параметр /closeonend.
/closeonend:0 не закрывать диалог автоматически
/closeonend:1 закрывать автоматически, если нет ошибок
/closeonend:2 закрывать автоматически, если нет ошибок и конфликтов
/closeonend:3 закрывать автоматически, если нет ошибок, конфликтов и слияний
Для закрытия окна выполнения для локальных операций при отсутствии ошибок и конфликтов, укажите параметр /closeforlocal.
В нижеприведённой таблице содержатся все команды, доступные при использовании командной строки TortoiseProc.exe. Как описано выше, они должны использоваться в виде /command:abcd. В таблице префикс /command опущен для экономии места.
Таблица D.1. Список доступных команд и параметров
| Команда | Описание |
|---|---|
| :about | Показывает диалог 'О программе'. Он же отображается, если команда не указана. |
| :log | Открывает диалог журнала. /path указывает файл или папку, для которой должен быть показан журнал. Могут быть указаны дополнительные параметры: /startrev:xxx, /endrev:xxx, /strict включает флажок 'остановиться на копировании', /merge включает флажок 'включая слитые ревизии', /findstring:"строка_фильтра" заполняет текст фильтра, /findtext заставляет фильтр использовать текст, а не регулярное выражение, или /findregex заставляет фильтр использовать регулярное выражение, а не простой текстовый поиск, и /findtype:X с X числом между 0 и 511. Числа равны сумме следующих параметров:
/outfile:path\to\file указан, то выбранные ревизии сохраняются в этот файл при закрытии диалога. Ревизии записываются в том же формате, который используется в диалоге слияния для указания ревизий." |
| :checkout | Открывает диалог извлечения. /path определяет директорию назначения и /url определяет адрес URL, из которого извлекается. Если вы укажете ключ /blockpathadjustments, путь для автоматического извлечения блокируется. /revision:XXX определяет ревизию для извлечения. |
| :import | Открывает диалог импорта. /path определяет директорию с данными для импорта. Вы также можете указать переключатель /logmsg для передачи предопределенного сообщения журнала в диалог импорта. Или если вы хотите передать сообщение журнала в командной строке, то используйте /logmsgfile:путь, где путь указывает на файл с сообщением журнала. |
| :update | Обновляет рабочую копию в /path до ревизии HEAD. Если задан параметр /rev, то показывается диалог, спрашивая у пользователя до какой ревизии обновить. Для отключения диалога укажите номер ревизии /rev:1234. Другие параметры /nonrecursive, /ignoreexternals и /includeexternals. /stickydepth указывает на то, что указанная глубина должна быть постоянной, создавая неполное извлечение. |
| :commit | Открывает диалог фиксации. Параметр /path задаёт целевую папку или список файлов для фиксации. Вы можете также задать параметр /logmsg для указания предопределённого сообщения журнала, которое будет передано в диалог фиксации. Или, если вы не желаете передавать сообщение журнала в командной строке, воспользуйтесь /logmsgfile:путь, где путь задаёт файл, содержащий сообщение журнала. Для предварительного заполнения поля 'ID ошибки' (в случае, если у вас настроена интеграция с системой отслеживания ошибок) вы можете применить параметр /bugid:"здесь id ошибки". |
| :add | Добавляет файлы в /path под управление версиями. |
| :revert | Отменяет локальные изменения в рабочей копии. Параметр /path указывает, какие элементы должны быть возвращены в прежнее состояние. |
| :cleanup | Очищает прерванные или незавершенные операции и разблокирует рабочую копию в /path. Используйте /noui для предотвращения появления диалога результата (либо очистка завершается, либо показывается сообщение об ошибке). /noprogressui также отключает диалог процесса выполнения. /nodlg отключает показ диалога, в котором пользователь может выбрать, что именно должно быть выполнено при очистке. Доступные действия могут быть указаны параметрами /cleanup для очистки статуса, /revert, /delunversioned, /delignored, /refreshshell и /externals. |
| :resolve | Помечает конфликтные файлы, указанные в /path, как улаженные. Если задан параметр /noquestion, то улаживание производится, не спрашивая предварительно разрешения на выполнение у пользователя. |
| :repocreate | Создаёт хранилище в папке, указанной параметром /path |
| :switch | Открывает диалог переключения. Параметр /path задаёт целевую папку. |
| :export | Экспортирует рабочую копию /path в другую директорию. Если /path указывает на неверсированную директорию, то диалог запросит адрес URL, который экспортировать в директорию /path. Если вы указываете ключ /blockpathadjustments, то отключается автоматическая настройка пути экспорта. |
| :dropexport | Экспортирует рабочую копию /path в директорию указанную в /droptarget. Этот экспорт не использует диалог экспорта и выполняется напрямую. Параметр /overwrite указывает, что существующие файлы перезаписываются без подтверждения пользователя, и параметр /autorename указывает, что если файлы уже существуют, то экспортируемые файлы переименовываются автоматически во избежание их перезаписывания. |
| :merge | Открывает диалог слияния. /path определяет директорию назначения. Для слияния диапазона ревизий доступны следующие параметры: /fromurl:URL, /revrange:строка. Для слияния двух деревьев хранилища доступны следующие параметра: /fromurl:URL, /tourl:URL, /fromrev:xxx и /torev:xxx. Для выполнения реинтеграционного слияния используйте следующие опции: /fromurl:URL и /reintegrate. Эти параметры заполняют соответствующие поля в диалоге слияния. |
| :mergeall | Открывает диалог 'Слить все'. Параметр /path задаёт целевую папку. |
| :copy | Открывает диалог ответвления/метки. Параметр /path задаёт рабочую копию, из которой будет выполнятся создаваться ответвление/метка. Параметр /url задаёт целевой URL. Вы можете также задать параметр /logmsg для указания предопределённого сообщения журнала, которое будет передано в диалог ответвления/метки. Или, если вы не желаете передавать сообщение журнала в командной строке, воспользуйтесь /logmsgfile:путь, где путь задаёт файл, содержащий сообщение журнала. |
| :settings | Открывает диалог настроек. |
| :remove | Убирает файл(-ы) в /path из-под управления версиями. |
| :rename | Переименовывает файл, заданный параметром /path. Новое имя для файла запрашивается при помощи диалога. Для подавления вопроса о переименовании похожих файлов за один приём, укажите /noquestion. |
| :diff | Запускает указанную в настройках TortoiseSVN внешнюю программу сравнения. Параметр /path задаёт первый файл. Если указан параметр /path2, то программа сравнения запускается с этими двумя файлами. Если параметр /path2 опущен, то сравнение делается между файлом, задаваемым /path и его базовой ревизией (BASE). Для явного задания номеров ревизий используйте параметры /startrev:xxx и /endrev:xxx, и дополнительно для опорной (peg) ревизии — /pegrevision:xxx. Если параметр /blame задан, а /path2 — нет, то сначала производится получение авторства для файлов в заданных ревизиях, после чего выполняется сравнение. Параметр /line:xxx указывает строку, к которой необходимо перейти при показе различий. |
| :showcompare |
В зависимости от указанных URL и ревизий для сравнения, будет показаны либо объединённые различия (если указан параметр Параметры |
| :conflicteditor | Запускает указанный в настройках TortoiseSVN редактор конфликтов для файлов, соответствующих конфликтующему файлу, задаваемому параметром /path. |
| :relocate | Открывает диалог перебазирования. Параметр /path указывает путь рабочей копии, который будет перебазирован. |
| :help | Открывает файл справки. |
| :repostatus | Открывает диалог проверки наличия изменений. Параметр /path задаёт папку рабочей копии. Если указан параметр /remote, то диалог связывается с хранилищем при начале работы, как если бы пользователь нажал кнопку Проверить хранилище. |
| :repobrowser |
Запускает диалог браузера хранилища указывающего на адрес URL рабочей копии, заданной в Дополнительный параметр Если Если задан |
| :ignore | Добавляет все целевые файлы из /path в список игнорирования, т.е. добавляет к этим файлам свойство svn:ignore. |
| :blame |
Открывает диалог авторства для файла, указанного в Если заданы параметры Если задан параметр Также поддерживаются параметры |
| :cat | Сохраняет файл из URL или пути в рабочей копии, заданному в /path, в место, указанное в /savepath:путь. Ревизия передается при помощи /revision:xxx. Может быть использовано для получения файла нужной ревизии. |
| :createpatch | Создаёт файл заплатки для пути, указанному в /path |
| :revisiongraph |
Показывает граф ревизий для пути заданного в Для создания файла с изображением графа ревизии для опеределенного пути, но без показа окна графа, передайте С тех пор как граф ревизий имеет много параметров, которые влияют на отображение, вы также можете установить параметры при создании выходного файла изображения. Передавайте эти параметры в |
| :lock | Блокирует файл или все файлы в папке, указанной в /path. Отображается диалог блокирования, чтобы пользователь мог ввести комментарий для блокировки. |
| :unlock | Разблокирует файл или все файлы в папке, указанной в /path. |
| :rebuildiconcache | Восстанавливает кэш значков Windows. Используйте только в случае, если значки Windows испорчены. Побочный эффект этой команды (которого нельзя избежать) состоит в переупорядочивании значков на рабочем столе. Чтобы не появлялось окно сообщения, укажите /noquestion. |
| :properties | Показывает диалог работы со свойствами для пути, указанному в /path. |
Примеры (должны быть введены в одной строке):
TortoiseProc.exe /command:commit
/path:"c:\svn_wc\file1.txt*c:\svn_wc\file2.txt"
/logmsg:"test log message" /closeonend:0
TortoiseProc.exe /command:update /path:"c:\svn_wc\" /closeonend
TortoiseProc.exe /command:log /path:"c:\svn_wc\file1.txt"
/startrev:50 /endrev:60 /closeonend:0