最近在提交svn有一次log message中打錯了兩個字暗赶,所以想去把那次提交的log message修改下朱监,在工作目錄下空白處右鍵TortoiseSVN -> show log -> 選中需要修改的那次提交 -> 右鍵edit log message必指,整套操作如絲般順滑萤厅,錯字也很快改好阎毅,點擊OK目代,下面是見證奇跡的時刻:
看樣子大概是需要管理員創(chuàng)建一個hook程序屈梁?Google了一通之后明白了一些事情:
- 每次有新屬性提交嗤练,修改或者刪除時svn都會調(diào)用一個名叫pre-revprop-change的hook程序
- 在svn的repo/hooks 目錄下有一個 pre-revprop-change.tmpl 文件,此文件是一個模板文件在讶,里面寫的內(nèi)容很重要煞抬,標明了可用的參數(shù)以及正確的使用方式
- 如果想要使用pre-revprop-change這個hook程序,需要新建一個名為pre-revprop-change的可以行程序构哺,windows上可以命名為 pre-revprop-change.bat 或者 pre-revprop-change.exe此疹,Linux上應(yīng)該不用后綴名,但是需要修改下權(quán)限遮婶,使改文件有可執(zhí)行權(quán)限,有文章中提到 chmod 755 就行了
- 此hook程序 return 0 表示執(zhí)行成功湖笨,return 1 表示執(zhí)行失敗
有了以上這些認識其實可以根據(jù)自己的需求去寫一個pre-revprop-change.bat文件旗扑,比如大致邏輯是 只修改log信息,log信息不能為空 且 沒有修改其他內(nèi)容慈省,此時返回0臀防,其余情況返回1。
幸好已經(jīng)有小伙伴做了這些操作边败,這篇文章 里的小哥就寫好了這個bat文件袱衷,看了下代碼,嗯 沒啥問題笑窜,條件判斷很明確致燥,就是goto用的有點多,不過沒關(guān)系了實現(xiàn)的邏輯和咱們的需求是一致的排截,所以可以使用嫌蚤。
新建一個空文件,把文章中的代碼復(fù)制到文件中断傲,保存為 pre-revprop-change.bat脱吱,存放在 repo/hooks 路徑下即可。現(xiàn)在再去工作目錄下 edit log message 就可以成功了认罩。
參考鏈接:
: http://svnbook.red-bean.com/en/1.7/svn.ref.reposhooks.pre-revprop-change.html
: https://stackoverflow.com/questions/197224/what-is-a-pre-revprop-change-hook-in-svn-and-how-do-i-create-it
: https://ayria.livejournal.com/33438.html