《Disney +》 迪士尼、Marvel、彼思、星球大戰…  熱門優惠活動襲捲PlayStation Store   殺怪Roguelike遊戲《Curse of the Dead Gods》明天上市:7個遊戲提示不可不知   「PlayStation Partner Awards 2021 Japan Asia」PARTNER AWARD・SPECIAL AWARD得獎作品發表!   「MONSTER HUNTER RISE」體驗版ver.2發布中!還有機會得到金色怨龍虎等多項原創商品!   塑造與再現:《地平線 西域禁地》中氣勢凜凜的機器   山下智久向梅原選手討教STREET FIGHTER V!第2部「TOMO’S GAME ROOM supported by Onitsuka Tiger」公開!   「SQUARE ENIX MASTERLINE」第2彈!蒂娜&魔導裝甲&莫古利決定發售!   潛入!日本最大車用品「AUTOBACS」大阪與東京的連線電競賽車大賽「AUTOBACS e-Motorsports Experience」 

Subversion commit log 自動寄信通知

科技

Subversion commit log 自動寄信通知

要隨時看 Subversion 的 repository 有被任何人修改, 於是讓它在 commit 時, 自動寄更新通知信出來, 順便將 commit 版本與前一個版本自動做 diff 的動作.

設定 SVN Commit 自動寄信

設定 SVN commit 完成後, 自動寄信的步驟如下: (假設 SVN 路徑: /home/svn/repository/PROJECT_NAME)
  1. cp /home/svn/repository/PROJECT_NAME/hooks/post-commit.tmpl /home/svn/repository/PROJECT_NAME/hooks/post-commit # commit 完後, 會自動執行 post-commit 檔.
  2. chmod +x /home/svn/repository/PROJECT_NAME/hooks/post-commit
  3. vim /home/svn/repository/PROJECT_NAME/hooks/post-commit # 修改下述
    /usr/share/subversion/hook-scripts/commit-email.pl "$REPOS" "$REV" [email protected]
  4. 改成
    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 變更之後執行。
Source from Tsung's blog.

隨機科技新聞

Addidas