要隨時看 Subversion 的 repository 有被任何人修改, 於是讓它在 commit 時, 自動寄更新通知信出來, 順便將 commit 版本與前一個版本自動做 diff 的動作.
設定 SVN Commit 自動寄信
SVN Commit 中文亂碼問題
關於 hooks 其它的檔案有何用處?
相關文章
設定 SVN Commit 自動寄信
設定 SVN commit 完成後, 自動寄信的步驟如下: (假設 SVN 路徑: /home/svn/repository/PROJECT_NAME)
- cp /home/svn/repository/PROJECT_NAME/hooks/post-commit.tmpl /home/svn/repository/PROJECT_NAME/hooks/post-commit # commit 完後, 會自動執行 post-commit 檔.
- chmod +x /home/svn/repository/PROJECT_NAME/hooks/post-commit
- vim /home/svn/repository/PROJECT_NAME/hooks/post-commit # 修改下述
/usr/share/subversion/hook-scripts/commit-email.pl \
"$REPOS" "$REV" commit-watchers@example.org - 改成
export LC_CTYPE="zh_TW.UTF-8"
/usr/share/subversion/hook-scripts/commit-email.pl "$REPOS" "$REV" svn@domain
SVN Commit 中文亂碼問題
Debian lenny 裝的 subversion package 是 1.5.1, 此版的 SVN 預設 hooks 自動寄信功能, 就已經有兩個版本的 diff 囉~
唯一的問題是 Commit 的註解寫中文的話, 收到的信會是亂碼.
解法: 要是 svnlook LC_CTYPE locale 設定問題, 於 commit-email.pl 加上 export LC_CTYPE="zh_TW.UTF-8", 之後收到的信就有中文囉~
關於 hooks 其它的檔案有何用處?
下述轉載自: 寄送 subversion repository 的更新通知(感謝 yungyuc 好文)
- start-commit: 在 commit 開始之前執行,常用來檢查使用者是否有權執行動作。
- pre-commit: 在 transaction 完成而未真正 commit 之前執行,常用來檢查 commit 動作的有效性。可以在這個地方對 commit 時的 log 訊息進行要求。
- post-commit: 在 transaction 完成而 commit 結束,建立了新的 revision 之後執行,常用來寄送 e-mail 通知訊息。
- pre-revprop-change: subversion 的 revision property 並不會存入 repository,這個 hook 可以在 revision property 變更之前作一些處理,譬如把更新的資訊存到外部的紀錄檔裡面。
- post-revprop-change: 用途與 pre-revprop-change 類似,但會在 revision property 變更之後執行。