Поскольку всеми командами TortoiseSVN можно управлять при помощи параметров командной строки, вы можете использовать их для автоматизации в пакетных скриптах или же запустить конкретную команду и диалог из других программ (например, из вашего любимого текстового редактора).
Помните, что TortoiseSVN является клиентом с графическим интерфейсом пользователя, и это руководство по автоматизации показывает, как показывать диалоги TortoiseSVN для получения пользовательского ввода. Если вы хотите написать скрипт, который не требует ввода, вы должны использовать официальный клиент Subversion для командной строки.
Программа, отображающая интерфейс пользователя TortoiseSVN, называется TortoiseProc.exe
. Все команды указываются с параметрами /command:abcd
, где abcd
- это обязательное имя команды. Большинству из этих команд необходим как минимум один параметр с именем пути, задаваемый при помощи /path:"некоторый\путь"
. В следующей таблице 'команда' обозначает параметр /command:abcd
и 'путь' обозначает параметр /path:"некоторый\путь"
.
Есть специальная команда, которая не требует параметр /command:abcd
но, если в командной строке ничего не задано, то вместо этого запускается монитор проекта. Если задан параметр /tray
, то монитор проекта запускается в скрытом режиме и только добавляет свой значок в область на панели задач.
Так как некоторые команды могут принимать список целевых путей (например, фиксация нескольких конкретных файлов) в параметре /path
можно задать несколько путей, разделённых символом *
.
You can also specify a file which contains a list of paths, separated by newlines. The file must be in UTF-16 format, without a BOM. If you pass such a file, use /pathfile
instead of /path
. To have TortoiseProc delete that file after the command is finished, you can pass the parameter /deletepathfile
. If you don't pass /deletepathfile
, you have to delete the file yourself or the file gets left behind.
Окно выполнения, используемое при фиксации, обновлении и множестве других команд, обычно остаётся открытым после завершения команды до тех пор, пока пользователь не нажмёт кнопку
. Это может быть изменено установкой соответствующего параметра в диалоге настроек. Но использование этой настройки будет закрывать окно выполнения независимо от того, запущена ли команда из вашего пакетного командного файла или из контекстного меню TortoiseSVN.Для указания другого местоположения конфигурационного файла, используйте параметр /configdir:"путь\до\конигурационной\папки"
. Это переопределит путь по умолчанию, в том числе и установку из реестра.
Для автоматического закрытия окна выполнения по окончанию команды без предварительного постоянного изменения настройки вы можете указать параметр /closeonend
.
/closeonend:0
не закрывать диалог автоматически
/closeonend:1
закрывать автоматически, если нет ошибок
/closeonend:2
закрывать автоматически, если нет ошибок и конфликтов
/closeonend:3
закрывать автоматически, если нет ошибок, конфликтов и слияний
Для закрытия окна выполнения для локальных операций при отсутствии ошибок и конфликтов, укажите параметр /closeforlocal
.
В нижеприведённой таблице содержатся все команды, доступные при использовании командной строки TortoiseProc.exe. Как описано выше, они должны использоваться в виде /command:abcd
. В таблице префикс /command
опущен для экономии места.
Таблица D.1. Список доступных команд и параметров
Команда | Описание |
---|---|
:about | Показывает диалог 'О программе'. Он же отображается, если команда не указана. |
:log |
Открывает диалог журнала. Параметр
An svn date revision can be in one of the following formats:
|
:checkout |
Opens the checkout dialog. The If you specify |
:import | Открывает диалог импорта. /path определяет директорию с данными для импорта. Вы также можете указать переключатель /logmsg для передачи предопределенного сообщения журнала в диалог импорта. Или если вы хотите передать сообщение журнала в командной строке, то используйте /logmsgfile:путь , где путь указывает на файл с сообщением журнала. |
:update | Обновляет рабочую копию в /path до ревизии HEAD. Если задан параметр /rev , то показывается диалог, спрашивая у пользователя до какой ревизии обновить. Для отключения диалога укажите номер ревизии /rev:1234 . Другие параметры /nonrecursive , /ignoreexternals и /includeexternals . /stickydepth указывает на то, что указанная глубина должна быть постоянной, создавая неполное извлечение. Параметр /skipprechecks может быть установлен для пропуска всех проверок, которые были выполнены перед обновлением. Если это указано, то кнопка Журнал недоступна, и контекстное меню для показа различий также недоступно после обновления. |
:commit | Открывает диалог фиксации. Параметр /path задаёт целевую папку или список файлов для фиксации. Вы можете также задать параметр /logmsg для указания предопределённого сообщения журнала, которое будет передано в диалог фиксации. Или, если вы не желаете передавать сообщение журнала в командной строке, воспользуйтесь /logmsgfile:путь , где путь задаёт файл, содержащий сообщение журнала. Для предварительного заполнения поля 'ID ошибки' (в случае, если у вас настроена интеграция с системой отслеживания ошибок) вы можете применить параметр /bugid:"здесь id ошибки" . |
:add | Добавляет файлы в /path под управление версиями. |
:revert | Отменяет локальные изменения в рабочей копии. Параметр /path указывает, какие элементы должны быть возвращены в прежнее состояние. |
:cleanup | Очищает прерванные или отмененнные операции и разблокирует рабочую копию в /path . Вы также должны пропустить /cleanup , чтобы действительно выполнить очистку. Используйте /noui , чтобы исключить появление диалога (с сообщением о завершении очистки или об ошибке). /noprogressui также отключает диалог процесса выполнения. /nodlg отключает появление диалога, где пользователь может выбрать, что именно должно быть выполнено при очистке. Доступные действия могут быть указаны в параметрах /cleanup для очистки статуса, /breaklocks для снятия блокировок, /revert для отмены незафиксированных изменений, /delunversioned , /delignored , /refreshshell , /externals , /fixtimestamps и /vacuum . |
:resolve | Помечает конфликтные файлы, указанные в /path , как улаженные. Если задан параметр /noquestion , то улаживание производится, не спрашивая предварительно разрешения на выполнение у пользователя. |
:repocreate | Создаёт хранилище в папке, указанной параметром /path |
:switch | Открывает диалог переключения. /path задает целевую директорию, а /url — адрес URL, на который переключиться. |
:export | Экспортирует рабочую копию /path в другую директорию. Если /path указывает на неверсированную директорию, то диалог запросит адрес URL, который экспортировать в директорию /path . Если вы указываете ключ /blockpathadjustments , то отключается автоматическая настройка пути экспорта. |
:dropexport | Экспортирует рабочую копию /path в директорию указанную в /droptarget . Этот экспорт не использует диалог экспорта и выполняется напрямую. Параметр /overwrite указывает, что существующие файлы перезаписываются без подтверждения пользователя, и параметр /autorename указывает, что если файлы уже существуют, то экспортируемые файлы переименовываются автоматически во избежание их перезаписывания. Параметр /extended может определять либо localchanges для экспорта только файлов изменённых локально, либо unversioned для экспорта также всех неверсированных элементов. |
:dropvendor | Copies the folder in /path recursively to the directory specified in /droptarget . New files are added automatically, and missing files get removed in the target working copy, basically ensuring that source and destination are exactly the same. Specify /noui to skip the confirmation dialog, and /noprogressui to also disable showing the progress dialog. |
:merge | Открывает диалог слияния. /path определяет директорию назначения. Для слияния диапазона ревизий доступны следующие параметры: /fromurl:URL , /revrange:строка . Для слияния двух деревьев хранилища доступны следующие параметра: /fromurl:URL , /tourl:URL , /fromrev:xxx и /torev:xxx . |
:mergeall | Открывает диалог 'Слить все'. Параметр /path задаёт целевую папку. |
:copy | Открывает диалог ответвления/метки. /path это рабочая копия для ответвления/метки. А /url — URL назначения. Если URL начинается с ^ , предполагается, что он отностится к корню хранилища. Чтобы сразу отметить опцию Переключить рабочую копию на новую ветку/метку. вы можете передать параметр /switchaftercopy . Чтобы отметить опцию Создавать промежуточные папки передайте параметр /makeparents . Вы можете также указать параметр /logmsg , чтобы передать предопределенное сообщение журнала в диалог ответвления/метки. Или, если вы не хотите передавать сообщение журнала в командной строке используйте /logmsgfile:путь , где путь указывает на файл содержащий сообщение журнала. |
:settings | Открывает диалог настроек. |
:remove | Убирает файл(-ы) в /path из-под управления версиями. |
:rename | Переименовывает файл, заданный параметром /path . Новое имя для файла запрашивается при помощи диалога. Для подавления вопроса о переименовании похожих файлов за один приём, укажите /noquestion . |
:diff | Запускает внешнюю программу сравнения, указанную в настройках TortoiseSVN. Параметр /path задает первый файл. Если параметр /path2 указан, то программа сравнения запускается с этими двумя файлами. Если не указан параметр /path2 , то файл /path сравнивается с его Базовой версией. Если у указанного файла изменились свойства, то внешняя программа сравнения запускается для каждого измененного свойства. Чтобы предотвратить это - укажите параметр /ignoreprops . Чтобы указать номера конкретных ревизий используйте параметр /startrev:xxx и /endrev:xxx , и для указания стержневой (peg) ревизии используйте параметр /pegrevision:xxx . Если параметр /blame указан, а /path2 - нет, тогда сравнение авторства выполнится для указанных ревизий первого файла. Параметр /line:xxx задает строку, на которую будет перемещен курсор в окне с результатами сравнения. |
:shelve | Shelves the specified paths in a new shelf. The option /shelfname:name specifies the name of the shelf. An optional log message can be specified with /logmsg:message . If option /checkpoint is passed, the modifications of the files are kept. |
:unshelve | Applies the shelf with the name /shelfname:name to the working copy path. By default the last version of the shelf is applied, but you can specify a version with /version:X . |
:showcompare |
В зависимости от указанных URL и ревизий для сравнения, будет показаны либо объединённые различия (если указан параметр Параметры Если у указанного URL также изменились свойства, то внешнее средство сравнения будет запущено для каждого измененного свойства. Чтобы предотвратить это - укажите параметр If a unified diff is requested, an optional |
:conflicteditor | Запускает указанный в настройках TortoiseSVN редактор конфликтов для файлов, соответствующих конфликтующему файлу, задаваемому параметром /path . |
:relocate | Открывает диалог перебазирования. Параметр /path указывает путь рабочей копии, который будет перебазирован. |
:help | Открывает файл справки. |
:repostatus | Открывает диалог проверки наличия изменений. Параметр /path задаёт папку рабочей копии. Если указан параметр /remote , то диалог связывается с хранилищем при начале работы, как если бы пользователь нажал кнопку Проверить хранилище. |
:repobrowser |
Запускает диалог браузера хранилища указывающего на адрес URL рабочей копии, заданной в Дополнительный параметр Если Если задан |
:ignore | Добавляет все целевые файлы из /path в список игнорирования, т.е. добавляет к этим файлам свойство svn:ignore . |
:blame |
Открывает диалог авторства для файла, указанного в Если заданы параметры Если задан параметр Также поддерживаются параметры |
:cat | Сохраняет файл из URL или пути в рабочей копии, заданному в /path , в место, указанное в /savepath:путь . Ревизия передается при помощи /revision:xxx . Может быть использовано для получения файла нужной ревизии. |
:createpatch | Creates a patch file for the path given in /path . To skip the file Save-As dialog you can pass /savepath:путь to specify the path where to save the patch file to directly. To prevent the unified diff viewer from being started showing the patch file, pass /noview . If a unified diff is requested, an optional prettyprint option can be specified which will show the merge-info properties in a more user readable format. |
:revisiongraph |
Показывает граф ревизий для пути заданного в Для создания файла с изображением графа ревизии для опеределенного пути, но без показа окна графа, передайте С тех пор как граф ревизий имеет много параметров, которые влияют на отображение, вы также можете установить параметры при создании выходного файла изображения. Передавайте эти параметры в |
:lock | Блокирует файл или все файлы в папке, указанной в /path . Отображается диалог блокирования, чтобы пользователь мог ввести комментарий для блокировки. |
:unlock | Разблокирует файл или все файлы в папке, указанной в /path . |
:rebuildiconcache | Восстанавливает кэш значков Windows. Используйте только в случае, если значки Windows испорчены. Побочный эффект этой команды (которого нельзя избежать) состоит в переупорядочивании значков на рабочем столе. Чтобы не появлялось окно сообщения, укажите /noquestion . |
:properties |
Показывает диалог свойств для пути заданного в Для работы с версированными свойствами этой команде нужна рабочая копия. Свойства ревизии могут быть просмотрены/изменены если Чтобы непосредственно открыть диалог для определённого свойства, передайте имя свойства в параметре |
:sync |
Экспортирует/импортирует настройки, либо в зависимости от текущих настроек или если экспортированные настройки новее, или как указано. Если передан путь как Параметр Если ни параметр Если задан параметр Если задан параметр Параметр |
Примеры (должны быть введены в одной строке):
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