Table of Contents
Since all commands for TortoiseSVN are controlled through command line parameters, you can automate it with batch scripts or start specific commands and dialogs from other programs (e.g. your favourite text editor).
Remember that TortoiseSVN is a GUI client, and this automation guide shows you how to make the TortoiseSVN dialogs appear to collect user input. If you want to write a script which requires no input, you should use the official Subversion command line client instead.
The TortoiseSVN GUI program is called TortoiseProc.exe
.
All commands are specified with the parameter /command:abcd
where abcd
is the required command name. Most of these
commands need at least one path argument, which is given with
/path:"some\path"
. In the following table the command
refers to the /command:abcd
parameter and the path
refers to the /path:"some\path"
parameter.
Since some of the commands can take a list of target paths (e.g. committing
several specific files) the /path
parameter can take
several paths, separated by a *
character.
TortoiseSVN uses temporary files to pass multiple arguments between
the shell extension and the main program. From TortoiseSVN 1.5.0 on and later,
/notempfile
parameter is obsolete and there is no need
to add it anymore.
The progress dialog which is used for commits, updates and many more commands usually stays open after the command has finished until the user presses the
button. This can be changed by checking the corresponding option in the settings dialog. But using that setting will close the progress dialog, no matter if you start the command from your batch file or from the TortoiseSVN context menu.
To specify a different location of the configuration file, use the parameter
/configdir:"path\to\config\directory"
.
This will override the default path, including any registry setting.
To close the progress dialog at the end of a command automatically without
using the permanent setting you can pass the /closeonend
parameter.
/closeonend:0
don't close the dialog automatically
/closeonend:1
auto close if no errors
/closeonend:2
auto close if no errors and conflicts
/closeonend:3
auto close if no errors, conflicts and merges
/closeonend:4
auto close if no errors, conflicts and merges
for local operations
The table below lists all the commands which can be accessed
using the TortoiseProc.exe command line. As described above,
these should be used in the form /command:abcd
.
In the table, the /command
prefix is omitted
to save space.
Table D.1. List of available commands and options
Command | Description |
---|---|
:about | Shows the about dialog. This is also shown if no command is given. |
:log |
Opens the log dialog. The /path specifies the
file or folder for which the log should be shown.
Three additional options can be set:
/startrev:xxx ,
/endrev:xxx and
/strict
|
:checkout |
Opens the checkout dialog. The /path
specifies the target directory and the /url
specifies the URL to checkout from.
|
:import |
Opens the import dialog. The /path
specifies the directory with the data to import.
|
:update |
Updates the working copy in /path to
HEAD. If the option /rev is given
then a dialog is shown to ask the user to which
revision the update should go. To avoid the dialog
specify a revision number /rev:1234 .
Other options are /nonrecursive and
/ignoreexternals .
|
:commit |
Opens the commit dialog. The /path specifies the
target directory or the list of files to commit.
You can also specify the /logmsg switch
to pass a predefined log message to the commit dialog.
Or, if you don't want to pass the log message on the
command line, use /logmsgfile:path ,
where path
points to a file containing the log message.
To pre-fill the bug ID box (in case you've set up
integration with bug trackers properly), you can use
the /bugid:"the bug id here" to
do that.
|
:add |
Adds the files in /path to
version control.
|
:revert |
Reverts local modifications of a working copy.
The /path tells which items
to revert.
|
:cleanup |
Cleans up interrupted or aborted operations and
unlocks the working copy in /path .
|
:resolve |
Marks a conflicted file specified in
/path as resolved. If
/noquestion is given, then resolving
is done without asking the user first if it really
should be done.
|
:repocreate |
Creates a repository in /path
|
:switch |
Opens the switch dialog. The /path specifies the
target directory.
|
:export |
Exports the working copy in /path
to another directory. If the /path
points to an unversioned directory, a dialog will ask
for an URL to export to the directory in /path .
|
:merge |
Opens the merge dialog. The /path specifies the
target directory.
|
:mergeall |
Opens the merge all dialog. The /path specifies the
target directory.
|
:copy |
Brings up the branch/tag dialog.
The /path
is the working copy to branch/tag from.
And the /url is the
target URL.
You can also specify the /logmsg switch
to pass a predefined log message to the branch/tag dialog.
Or, if you don't want to pass the log message on the
command line, use /logmsgfile:path ,
where path
points to a file containing the log message.
|
:settings | Opens the settings dialog. |
:remove |
Removes the file(s) in /path from
version control.
|
:rename |
Renames the file in /path . The new
name for the file is asked with a dialog.
To avoid the question about renaming similar files
in one step, pass /noquestion .
|
:diff |
Starts the external diff program specified in the
TortoiseSVN settings. The /path
specifies the first file.
If the option /path2
is set, then the diff program is started with those
two files. If /path2 is omitted,
then the diff is done between the file in
/path and its BASE.
To explicitly set the revision numbers use
/startrev:xxx and
/endrev:xxx .
If /blame is set and /path2
is not set, then the diff is done by first blaming
the files with the given revisions.
|
:showcompare |
Depending on the URLs and revisions to compare, this
either shows a unified diff (if the option
The options |
:conflicteditor |
Starts the conflict editor specified in the TortoiseSVN
settings with the correct files for the conflicted
file in /path .
|
:relocate |
Opens the relocate dialog. The /path
specifies the working copy path to relocate.
|
:help | Opens the help file. |
:repostatus |
Opens the check-for-modifications dialog. The /path
specifies the working copy directory.
|
:repobrowser |
Starts the repository browser dialog, pointing to
the URL of the working copy given in
/path or /path
points directly to an URL.
An additional option /rev:xxx can
be used to specify the revision which the repository
browser should show. If the /rev:xxx
is omitted, it defaults to HEAD.
If /path points to an URL, the
/projectpropertiespath:path/to/wc specifies
the path from where to read and use the project properties.
|
:ignore |
Adds all targets in /path to the
ignore list, i.e. adds the svn:ignore
property to those files.
|
:blame |
Opens the blame dialog for the file specified
in
If the options
If the option
The options |
:cat |
Saves a file from an URL or working copy path given
in /path to the location given in
/savepath:path . The revision is
given in /revision:xxx . This can
be used to get a file with a specific revision.
|
:createpatch |
Creates a patch file for the path given in
/path .
|
:revisiongraph |
Shows the revision graph for the path given in
/path .
|
:lock |
Locks a file or all files in a directory given in
/path .
The 'lock' dialog is shown so the
user can enter a comment for the lock.
|
:unlock |
Unlocks a file or all files in a directory given in
/path .
|
:rebuildiconcache |
Rebuilds the windows icon cache. Only use this in
case the windows icons are corrupted. A side effect
of this (which can't be avoided) is that the icons
on the desktop get rearranged.
To suppress the message box, pass /noquestion .
|
:properties |
Shows the properties dialog for the path given in
/path .
|
Examples (which should be entered on one line):
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:0 TortoiseProc.exe /command:log /path:"c:\svn_wc\file1.txt" /startrev:50 /endrev:60 /closeonend:0