すべての TortoiseSVN のコマンドがコマンドライン引数で制御できます。バッチファイルで自動化したり、テキストエディターなどの他のプログラムから、特定のコマンドやダイアログを起動したりすることができます。
TortoiseSVN はあくまで GUI クライアントです。ここでは TortoiseSVN のダイアログを表示させて、ユーザーに入力を促す方法を説明します。入力を伴わずに操作をするスクリプトを書くのであれば、公式の Subversion コマンドラインクライアントを使用してください。
TortoiseSVN の GUI プログラムは TortoiseProc.exe
から呼び出します。実行するコマンドは /command:<コマンド名>
引数で指定し、 <コマンド名>
の部分にはコマンド名を指定します。ほとんどのコマンドでは /path:"<パス名>"
引数でパスを指定する必要があります。下記の表で、 /command:<コマンド名>
で指定するコマンドと、 /path:"<パス名>"
で指定するパスの意味を説明します。
パラメーターを必要としない特殊なコマンド /command:abcd
がありますが、もし何もコマンドラインから指定されなかった場合、代わりにプロジェクトモニターが起動します。もし /tray
を指定すると、プロジェクトモニターを表示せず、システムトレイにアイコンが表示された状態で起動します。
コマンドによっては、複数の対象のパスを受け付けます(例えば、コミット時に複数のファイルを指定する場合など)。 /path
引数には *
で区切って複数のパスを指定することができます。
改行で区切った複数のパスを記述したファイルで指定することもできます。ファイルはUTF-16形式で、BOM を入れないでください。ファイルを渡したい場合は、/path
ではなく/pathfile
を使用してください。コマンド実行後にTortoiseProcがファイルを自動削除するようにしたい場合は、/deletepathfile
を使用してください。/deletepathfile
を指定しない場合、手作業でファイルを削除しなければファイルは残ります。
多くのコマンド(コミットや更新など)で表示される進行ダイアログは、通常はコマンドが終了した後も
ボタンを押すまで開いたままになります。設定ダイアログで進行ダイアログを自動的に閉じるように設定することができます。ただしこの場合、コマンドをバッチファイルから起動しても、 TortoiseSVN コンテキストメニューから起動しても、進行ダイアログが閉じるようになります。/configdir:"<設定ファイルのディレクトリのパス>"
を指定すると、異なる場所にある設定ファイルを指定することができます。この引数は、レジストリで設定されているデフォルトパスを上書きします。
/closeonend
引数を指定すると、設定を変更することなくコマンド終了時に進行ダイアログを自動で閉じることができます。
/closeonend:0
ダイアログを自動的に閉じません。
/closeonend:1
エラーがなければ自動的に閉じます。
/closeonend:2
エラーや競合がなければ自動的に閉じます。
/closeonend:3
エラー、競合、マージがなければ自動的に閉じます。
エラーや競合がない場合にローカル操作の進行ダイアログを自動的に閉じるには、 /closeforlocal
引数を指定してください。
以下の表には、 TortoiseProc.exe のコマンドラインで使用してアクセスすることができる、すべてのコマンドを一覧しています。上で述べたように、 /command:<コマンド名>
の形で使用してください。この表では紙面を節約するため、頭に付ける /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:<パス> でログメッセージの初期値をファイルで指定することもできます。この場合、 <パス> でログメッセージの入ったファイルの場所を指定します。バグ追跡システムとの統合が正しく設定されている場合、 /bugid:"<バグ ID>" でバグ 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 でバージョン管理外ディレクトリを指定すると、ダイアログが表示されて /path で指定されたディレクトリにエクスポートする URL を尋ねてきます。 /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:string のオプションを使用できます。2つのリポジトリツリーをマージするには、 /fromurl:URL , /tourl:URL , /fromrev:xxx , /torev:xxx のオプションを使用できます。 |
:mergeall | 「すべてマージ」ダイアログを開きます。 /path で対象ディレクトリを指定します。 |
:copy | ブランチ/タグダイアログを開きます。/path でブランチ/タグの作成元の作業コピーを指定します。また、/url は作成先のURLです。 URLが^ で始まる場合は、リポジトリのルートからの相対URLとみなされます。新しいブランチ/タグへ作業コピーを切り替え オプションを既定でチェックしておきたい場合は、/switchaftercopy を指定してください。中間フォルダーを作成 オプションをチェックするには、/makeparents スイッチを指定してください。/logmsg でログメッセージの初期値を指定できます。また、コマンドラインでログメッセージを渡したくない場合は、/logmsgfile:<パス> を使用します。<パス> でログメッセージが入ったファイルの場所を指定します。 |
:settings | 設定ダイアログを開きます。 |
:remove | /path で指定されたファイルをバージョン管理下から削除します。 |
:rename | /path で指定されたファイルの名前を変更します。このファイルの新しい名前を入力するダイアログが表示されます。一度に同様のファイルの名前の変更を行う際、確認を行わないようにするには、 /noquestion を指定してください。 |
:diff | TortoiseSVNの設定で指定された外部差分ビューアーを起動します。/path には1番目のファイルを指定します。/path2 オプションを指定すると、その2つのファイルに対して差分ビューアーが起動します。/path2 を省略すると、/path で指定されたファイルとその作業ベースの間の差分となります。指定されたファイルにプロパティの変更がある場合は、変更された各プロパティについても外部差分ビューアーが起動されます。これを防ぐには、/ignoreprops を指定してください。リビジョン番号を指定するには、/startrev:xxx や/endrev:xxx を指定してください。ペグリビジョンを指定する場合は、/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のプロパティの変更があった場合、変更された各プロパティについても外部差分ビューアーが起動します。これを避けるには、 If a unified diff is requested, an optional |
:conflicteditor | /path の競合ファイルを編集するために、 TortoiseSVN の設定ダイアログで指定した競合エディターを起動します。 |
:relocate | 再配置ダイアログを表示します。 /path には、再配置する作業コピーのパスを指定します。 |
:help | ヘルプファイルを開きます。 |
:repostatus | 「変更をチェック」ダイアログを開きます。 /path には作業コピーのディレクトリを指定します。 /remote を指定すると、ユーザーが リポジトリをチェック ボタンを押したときのように、直ちにリポジトリにアクセスを開始します。 |
:repobrowser |
|
:ignore | /path で指定されたすべての対象を無視リストに追加します。つまり svn:ignore プロパティにそのファイルを追加します。 |
:blame |
|
:cat | /path で指定した URL や作業コピーのパスのファイルを、 /savepath:path で指定した場所に保存します。 /revision:xxx でリビジョンを指定できます。指定したリビジョンのファイルを取得するのに使用できます。 |
:createpatch | Creates a patch file for the path given in /path . To skip the file Save-As dialog you can pass /savepath:path 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 |
現在の設定がエクスポートした設定より新しいかどうかに応じて、設定をエクスポート/インポートします。
|
コマンドの例(1行で入力してください)
TortoiseProc.exe /command:commit /path:"c:\svn_wc\file1.txt*c:\svn_wc\file2.txt" /logmsg:"ログメッセージのテスト" /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