svn在團隊開發中的作用毋庸置疑,筆者也有數年的使用經驗,深感其使用之便利。
然而,一些比較繁復和自動化的svn操作,可以使用批處理的方式使svn的使用更加強大。
分享一:多個離散svn目錄的更新。
當不想更新整個根目錄,或者沒有整個根目錄權限,而又需要頻繁地更新時,要一個一個文件夾點進去更新操作,其繁復可想而知。我們可以編寫一個簡潔的.bat 文 件來執行這操作。如下:
"C:/Program Files/TortoiseSVN/bin/TortoiseProc.exe" 為本地SVN安裝目錄,注意的是需要加雙引號,因為 C:/Program Files/ 這個路徑包含空格。
/command:update 為SVN更新操作命令符。
/path:"F:/A/B/" 為需要更新的目錄。
/closeonend:0 操作結束符。
上面的.bat執行了兩個更新操作,會彈出兩個svn更新界面。可以用以下的方式用一個SVN界面更新兩個目錄。
/path:"F:/A/B/*F:/C/D/E.txt" 如上所示,可用 * 將兩個路徑連起來即可實現一個界面多個目錄的更新操作。
分享二:多個離散svn目錄的提交。
最近策划和美術均抱怨編輯場景之后不知道要提交哪些文件,也不知道放在哪個目錄,於是筆者在場景編輯器提供了一鍵提交的功能,自動檢測需要提交的各個目錄下的文件狀態。具體實現如下。
如果是提交尚未納入SVN版本控制的文件,首先要執行add命令,將以上的 /command:update 改為 /command:add 即可。再執行提交文件操作,將以上 /command:update 改為 /command:commit 即可。
無論是 add 還是commit ,執行時都是先彈出一個svn確認框,列出當前目錄下需要add 或者commit的文件,如果某文件不需執行操作,可在文件列表前的勾選去掉,然后再按確定,所做操作才會提交到svn服務器。
還可以在 commit 時設置默認的提交日志,如:
/logmsg: 后面的字符串即為默認的日志信息,同時也可在SVN的確認提交界面再次修改。
分享三:隱藏 cmd 窗口。
該功能不屬於svn 命令范疇,但既然說到了批處理,順便也分享一下。實現很簡單,只需在 .bat 文件的開始加上一段標識符即可,如下:
如此,即可不用每次執行.bat文件時都彈出那黑黑的窗口。
細細研究,其實批處理可實現的功能也是頗為強大的。