demoshop

demo, trying to be the best_

版控介紹到這裡這裡各位應該都可以體會 Log 是一個非常重要的東西,分支、合併、還原、刪除等等一堆功能都需要靠 Log 來做判斷,但是預設的情況下 Log 是可以不輸入的,對於這種不輸入 Log 的送交實在是很頭痛,因此這裡就來介紹如何強迫每次送交(Commit)都需要寫 Log 的方式。

demo廢言首先實作觀念 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 來送交了

立即會收到錯誤並且阻擋了這次的送交


demo廢言利用這種方式就可以避免使用者提供了空白的 Log 。

Subversion SVN 版本控管 系列文章

回應討論