[版本控管] LOG 是很重要的!如何強迫 Commit 時一定要輸入 Log
- 2011-11-06
- 19455
- 0
- Subversion SVN 版本控管
版控介紹到這裡這裡各位應該都可以體會 Log 是一個非常重要的東西,分支、合併、還原、刪除等等一堆功能都需要靠 Log 來做判斷,但是預設的情況下 Log 是可以不輸入的,對於這種不輸入 Log 的送交實在是很頭痛,因此這裡就來介紹如何強迫每次送交(Commit)都需要寫 Log 的方式。
首先實作觀念 demo 不想提,因為這扯很遠相當遠,對於我們這種專注於應用的人來說扯那個沒有意義,所以就讓我們達到目標就好,你只要確定你動的到 SVN Server 因為這是對於伺服器端的操作,如果你動不到伺服器端那就沒搞頭了,再確認你可以動到伺服器端後至 codeplex 下載 SubversionTools http://svntools.codeplex.com/。
下載回來的檔案請解壓縮,解壓縮後可以看到
- ChkCommitMsg.exe
- ChkCommitMsg.exe.config
- README.txt
- SvnLib.dll
- pre-commit.bat
請將以上的檔案全部複製到你要限制的專案下的 hooks 目錄,依據本範例就是 s:\Repositories\demoshopTest\hooks
點開 pre-commit.bat 這個檔案
將原本的
Svnlook info %REPOS% -t %TXN% | %REPOS%\hooks\ChkCommitMsg.exe
換成
"C:\Program Files (x86)\VisualSVN Server\bin\svnlook.exe" info %REPOS% -t %TXN% | %REPOS%\hooks\ChkCommitMsg.exe
(以上路徑為您是使用 Visual SVN 安裝 Server 並且安裝在C槽的情況,如有變動請自行修改 svnlook.exe 的路徑)
點開 ChkCommitMsg.exe.config
調整你想要的警告訊息
<add key="ErrorNoCommitMessage" value="不是和你說 Log 很重要!為什麼不輸入!"/>
這時候你就可以嘗試不輸入 Log 來送交了
立即會收到錯誤並且阻擋了這次的送交
利用這種方式就可以避免使用者提供了空白的 Log 。
回應討論