2006年07月13日
[Subversion] 可重覆使用的性質設定批次命令
在初試TortoiseSVN的收穫這篇裡提及,可以在Subversion的工作複本資料夾裡,設定與Bug Tracking System整合的性質(Property),
如bugtraq:url、bugtraq:message、bugtraq:number、bugtraq:append等,一般是在工作複本最上層,
以檔案總管→內容→Subversion頁籤裡來設定,並勾選「遞迴」使上層的性質同步存到子目錄裡。但如果每個不同的專案都要依樣重複這個設定一次,那
可就有點累人了,因此今天試著寫一支批次檔,以方便能重覆執行。
首先遇到了用來填入Bug號碼的識別字 %BUGID%,其中的百分號是Windows shell的環境變數擴展字元,例如%WINDIR%擴展後的是C:\\Windows,或C:\\WINNT,為了不讓%BUGID%擴展,因此必須找 到其Escape字元,以抑制其擴展的動作。查了半天,Shell的Escape字元是^符號,在DOS裡執行OK(^%BUGID^%→%BUGID %),但放在批次檔裡卻又整個變成一個 ^ 符號。最後終於確認在批次檔裡用兩個百分號就可以解決了。
接著,由於bugtraq:message裡使用到中文,被轉換成 \?數字 的格式,即使設定了iconv的變數也無法正常,最後只好放棄而改用英文。
以下是我的範例:
首先遇到了用來填入Bug號碼的識別字 %BUGID%,其中的百分號是Windows shell的環境變數擴展字元,例如%WINDIR%擴展後的是C:\\Windows,或C:\\WINNT,為了不讓%BUGID%擴展,因此必須找 到其Escape字元,以抑制其擴展的動作。查了半天,Shell的Escape字元是^符號,在DOS裡執行OK(^%BUGID^%→%BUGID %),但放在批次檔裡卻又整個變成一個 ^ 符號。最後終於確認在批次檔裡用兩個百分號就可以解決了。
接著,由於bugtraq:message裡使用到中文,被轉換成 \?數字 的格式,即使設定了iconv的變數也無法正常,最後只好放棄而改用英文。
以下是我的範例:
| set APR_ICONV_PATH=d:\svn-win32-1.2.3\iconv svn propset bugtraq:url "http://your.track.com/printItem.do?key=%%BUGID%%" . -R svn propset bugtraq:append "true" . -R svn propset bugtraq:number "true" . -R svn propset bugtraq:message "Issue Number: [%%BUGID%%]" . -R svn propset bugtraq:warnifnoissue "true" . -R |
- bugtraq:append=true表示Bug號碼插入於紀錄訊息的最末端
- bugtraq:number=true表示Bug號碼是數值型態
- bugtraq:message 是Bug號碼的表示字串
- bugtraq:warnifnoissue=true表示Commit時若未輸入Bug號碼則顯示警告視窗,但確定後仍可Commit
