TortoiseSVN是一個GUI客戶端,這個自動化指導為你展示了讓TortoiseSVN對話框顯示並收集客戶輸入,如果你希望編寫不需要輸入的腳本,你應該使用官方的Subversion命令行客戶端。
TortoiseSVN的GUI程序叫做TortoiseProc.exe。所有的命令通過參數/command:xxxx指定,其中xxxx是必須的命令名。大多數此類命令至少需要一個路徑參數,使用/path:"some\path"指定。在下面的命令表格中,命令引用的是/command:xxxx參數,余下的代表了/path:"some\path"參數。
因為一些命令需要一個目標路徑的列表(例如提交一些特定的文件),/path參數可以接收多個路徑,使用*分割。
TortoiseSVN 使用臨時文件在 shell 擴展和主程序之間傳遞多個參數。從 TortoiseSVN 1.5.0 開始,廢棄/notempfile參數,不再需要增加此參數。
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
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.
如果想在進度對話框執行完畢后自動關閉,而又不必設置永久性的參數,可以傳遞/closeonend參數。
-
/closeonend:0不自動關閉對話框 -
/closeonend:1如果沒發生錯誤則自動關閉對話框 -
/closeonend:2如果沒發生錯誤和沖突則自動關閉對話框 -
/closeonend:3如果沒有錯誤、沖突和合並,會自動關閉 -
/closeonend:4如果沒有錯誤、沖突和合並,會自動關閉
下面的列表列出了所有可以使用TortoiseProc.exe訪問的命令,就像上面的描述,必須使用/command:xxxxxx的形式,在列表中,因為節省空間的關系省略了/command的前綴。
表 D.1. 有效命令及選項列表
| 命令 | 描述 |
|---|---|
| :about | 顯示關於對話框。如果沒有給命令也會顯示。 |
| :log | 打開日志對話框,/path 指定了顯示日志的文件或目錄,另外還有三個選項可以設置: /startrev:xxx、/endrev:xxx和/strict |
| :checkout | 打開檢出對話框,/path指定了目標路徑,而/url制定了檢出的URL。 |
| :import | 打開導入對話框,/path 指定了數據導入路徑。 |
| :update | 將工作副本的/path更新到HEAD,如果給定參數/rev,就會彈出一個對話框詢問用戶需要更新到哪個修訂版本。為了防止指定修訂版本號/rev:1234的對話框,需要選項/nonrecursive和/ignoreexternals。 |
| :commit | 打開提交對話框,/path 指定了目標路徑或需要提交的文件列表,你也可以使用參數 /logmsg 給提交窗口傳遞預定義的日志信息,或者你不希望將日志傳遞給命令行,你也可以使用/logmsgfile:path,path 指向了保存日志信息的文件。為了預先填入bug的ID(如果你設置了集成bug追蹤屬性),你可以使用/bugid:"the bug id here"完成這個任務。 |
| :add | 將/path的文件添加到版本控制 。 |
| :revert | 恢復工作副本的本地修改,/path說明恢復哪些條目。 |
| :cleanup | 清理中斷和終止的操作,將工作副本的/path解鎖。 |
| :resolve | 將/path指定文件的沖突標示為解決,如果給定/noquestion,解決不會向用戶確認操作。 |
| :repocreate | 在/path創建一個版本庫。 |
| :switch | 打開選項對話框。/path 指定目標目錄。 |
| :export | 將/path的工作副本導出到另一個目錄,如果/path指向另一個未版本控制目錄,對話框會詢問要導出到/path的URL。 |
| :merge | Opens the merge dialog. The /path specifies the target directory. For merging a revision range, the following options are available: /fromurl:URL, /revrange:string. For merging two repository trees, the following options are available: /fromurl:URL, /tourl:URL, /fromrev:xxx and /torev:xxx. These pre-fill the relevant fields in the merge dialog. |
| :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 | 打開設置對話框。 |
| :remove | 從版本控制里移除/path中的文件。 |
| :rename | 重命名/path的文件,會在對話框中詢問新文件,為了防止一個步驟中詢問相似文件,傳遞/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 | 打開重定位對話框,/path指定了重定位的工作副本路徑。 |
| :help | 打開幫助文件 |
| :repostatus | 打開為修改檢出對話框,/path 指定了工作副本目錄。 |
| :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/wcspecifies the path from where to read and use the project properties. |
| :ignore | 將/path中的對象加入到忽略列表,也就是將這些文件添加到 svn:ignore 屬性。 |
| :blame | 為 如果設置了 如果設置了 也支持 |
| :cat | 將/path指定的工作副本或URL的文件保存到/savepath:path,修訂版本號在/revision:xxx,這樣可以得到特定修訂版本的文件。 |
| :createpatch | 創建/path下的補丁文件。 |
| :revisiongraph | 顯示/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 | 顯示 /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
實際使用的例子:
C:\Programe Files\TortoiseSVN\bin\TortoiseProc.exe /command:checkout /url:"http://code.taobao.org/svn/tair/trunk" \path:"d:\tair"
