[Subversion] 修改舊版次的訊息與作者名稱

Subversion能夠修改已存儲存過的紀錄訊息或作者名稱,因此漏打了一些資訊的或需要更正的,就有修改的機會。但修改並儲存時卻出現下列訊息:

DAV要求失敗;可能是檔案庫的 pre-revprop-change 掛勾執行失敗,或是不存在至少有一個性質變更失敗;檔案庫未更動

研讀了文件後才知道要修改訊息或作者必須手動設定 <Subversion安裝資料夾>hookspre-revprop-change.<系統執行檔名>所謂的<系統執行檔名>指的是Subversion Server的作業系統所能執行的檔案類型,例如在UNIX或Linux裡一般是.sh,Windows裡一般是.bat、.vbs或.exe等,只要複製hooks資料夾裡的pre-revprop-change.tmpl成.sh或.bat即可。

tmpl就是Template樣版的意思,而revprop-change指的是版次(rev, revision)的性質(prop, Property)的修改,檔名開頭的pre則是在修改動作要儲存至檔案庫「之前」要執行的程式,若程式傳回 0 表示沒有問題可以儲存,但若傳回 非0的數值 則表示發生狀況,因此要取消後續的儲存處理。

由pre-revprop-change.tmpl可以看出Subversion系統會傳出5個參數:

  1. 檔案庫名稱 (Repository)
  2. 要修改的版次 (Revision)
  3. 作者名稱 (User)
  4. 性質名稱 (Property Name)
  5. 操作的動作 (Action)

透過這幾個參數,就能方便的控制是否允許對訊息和作者這兩個重要的性質做變更了。以下是我將pre-revprop-change.tmpl的Bourne-shell改寫成Windows的.bat範例:

rem [1] REPOS-PATH (the path to this repository)
rem [2] REVISION (the revision being tweaked)
rem [3] USER (the username of the person tweaking the property)
rem [4] PROPNAME (the property being set on the revision)
rem [5] ACTION (the property is being ‘A’dded, ‘M’odified, or ‘D’eleted)set REPOS=%1
set REV=%2
set USER=%3
set PROPNAME=%4
set ACTION=%5

echo "%PROPNAME%/%ACTION%" > "chg%REV%.txt"
if "%ACTION%"=="M" goto MODIFY
goto CANNOT_DOIT
:MODIFY
if "%PROPNAME%"=="svn:log" goto DOIT
goto CANNOT_DOIT
:DOIT
exit 0
goto END
:CANNOT_DOIT
echo "Changing revision properties other than svn:log is prohibited" >&2
exit 1
:END

##

您可能也會有興趣的類似文章

填寫回應

 

 

 

您可使用這些HTML標籤

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

隨機文章

  1. 功能齊全的檔案總管工具:NexusFile V 
  2. [轉貼e天下] Blog風潮 企業愛恨交加 (1)
  3. [轉貼] 功能精巧的免費防火牆:SoftPerfect Personal Firewall (1)
  4. TS-109網址不加斜線連線錯誤的修正 
  5. [轉貼] 網路家庭分紅網 有錢大家賺 
  6. [Cygwin] 與常用DOS命令的對應簡表 (4)
  7. 從星際大戰三部曲看到民主的脆弱 
  8. 示範Atahualpa 3.5.1佈景主題表頭區的調整 
  9. 給Ant用的Subversion task 
  10. [轉貼] 蚊子老是找上你? 專家:人體二氧化碳濃度作祟 

歷史熱門文章

  1. 如何手動輸入Plurk的表情圖示? (352,044 點擊/2008-09-29)
  2. 簡單放大Plurk輸入區的方法[修訂] (86,779 點擊/2008-09-29)
  3. Plurk CSS樣式自訂修改全攻略 (82,772 點擊/2009-07-04)
  4. 啟用&關閉中華電信ZyXEL P874的無線網路連線功能的步驟[修訂] (82,430 點擊/2011-06-01)
  5. 網路升級光世代50M/3M與設定ZyXEL P874 (52,425 點擊/2011-05-28)
  6. 輕鬆學會彈指神功-揭露AutoHotkey絕技 (42,818 點擊/2008-04-10)
  7. iPad新手入門技巧 (40,001 點擊/2011-02-05)
  8. 分享世博台灣館主題曲『台灣的心跳聲』MV(附歌詞+下載連結+新歌詞) (38,040 點擊/2010-04-27)
  9. 把HTC Touch HD操作介面換成Spb Mobile Shell,美觀又便利! (37,865 點擊/2009-02-18)
  10. 另一套適用手機的影片轉檔工具:WinAVI 3GP/MP4/PSP/iPod Video Converter (35,798 點擊/2009-04-18)