在CVS主機的Repository內有一個特殊的CVS控制目錄:CVSROOT,此目錄內存放著許多控制CVS操作行為的小檔案,或許可以簡化的稱為 CVS的Event handler,例如:loginfo是在commit、輸入Log message後會讀取的檔案。
loginfo內除了註解(井號開頭)外的每一列都會被CVS程式讀取,依開頭的樣式來決定此次commit的檔案是否要執行其後的命令。例如:
| # 井號開頭是註解行 模組樣式 命令 [參數1 [參數2 [...參數n]…]] |
模組樣式是使用正規運用式(Regular Expression)來示符合要執行的是那些模組,例如:
| ^inetpub | 表示以inetpub開頭的模組(目錄) |
| ALL | 表示所有模組都符合 |
| DEFAULT | 由可執行的第一列開始都不符合的,最後會執行DEFAULT列的指令 |
模組樣式後面接的是要執行的命令。有一個相當好用的指令是Rob Partington寫的loginfo.rb,一支用來產生mail的Ruby程式,將修改人、修改時間、修改程式等訊息寄給需要通知的相關人等。loginfo.rb的使用說明如下:
| # Usage: loginfo.rb CVSROOT USER ‘CVS-LOG-STRING’ MAIL_ADDRESSES # [-d HELO_DOMAIN] [-s SMTP_SERVER] [-p SUBJECT_PREFIX] # [-S SENDER_ADDRESS] [-R REPLY_TO_ADDRESS] [-x X_HEADER_PREFIX] # [-w CVSWEB_URL] [-C PATH_TO_CVS] [-qJ] # # -d specify the domain to use in the SMTP session and in the mail header # (default: FQDN of the host) # -s specify the SMTP server to mail via # (default: "localhost") # -S specify the sender address for the mail # (default: USER + "@" + HELO_DOMAIN) # -R specify the reply-to address for the mail # (default: none) # -p specify the prefix for the mail subject (which will be surrounded # by `[' and `]‘) # (default: "cvs") # -q be quiet # -x specify the prefix for the CVS informative headers # (default: "X-") # -w specify the URL of the CVSweb with two @’s, one for a path, and # the other for a query (e.g. "‘http://a.b/cvsweb.cgi@?cvsroot=xyz&@’") # (default: none – no CVSweb links will be added) # -C specify the full path to cvs # (default: "/usr/bin/cvs") # -J enable Japanese support (send mail in the JIS encoding) # (default: disabled) |
使用範例:
| # 把inetpub與其子目錄內檔案的commit都寄通知給紅色字體的電子郵件帳號 # %s 是輸入的log message ^inetpub $CVSROOT/CVSROOT/loginfo.rb $CVSROOT $USER %s adam@hotmail.com,bill@gmail.com,cathy@pchome.com.tw -s mail.box.com.tw -S cvs_logingo@mail.box.com.tw |
要使用loginfo.rb當然要安裝Ruby環境;另外,以上指令都是在Linux上執行的,Windows環境需要做些小修改。在Windows中有一個叫做CVSMailer的Delphi程式,也可以用來寄送修改記錄,但我幾年前測試時始終無法正常運行,您也可以試看看。
如果想要對程式版本間的修改做更詳細的記錄與追蹤的話,可以自行撰寫程式,將修改程式、Log訊息等寫入資料庫,則日後就能使用SELECT敘述做查詢了。
##
您可能也會有興趣的類似文章
- [Subversion] 尋找Subversion Client工具 (0則留言, 2005/09/01)
- [Thunderbird] 常用擴充列表說明;增強電子郵件的收納管理能力 (6則留言, 2007/03/31)
- Anti-Spam SMTP Proxy造成郵件主機異常?! (0則留言, 2010/08/04)
- [轉貼] 中國博客網下月開始收費 (0則留言, 2005/06/15)
- [SVN] Hook scripts的使用方法 (0則留言, 2005/12/09)
- 我的Subversion與Trac使用經驗 (4則留言, 2008/01/12)
- 初試TortoiseSVN的收穫 (4則留言, 2005/09/16)
- CVS轉Subversion (0則留言, 2005/12/21)
- [Tools] 測試中的CVS Client:LinCVS (1則留言, 2005/06/08)
- [轉貼] Linux﹕厚積薄發? (1則留言, 2007/10/25)
- 用反垃圾郵件代理程式Anti-Spam SMTP Proxy (ASSP)清除惱人的垃圾信 (2則留言, 2010/05/23)
- 編輯環境變數PATH的人性化工具: Redmond Path (0則留言, 2008/04/19)
- [Tools] 常用的AutoHotKey設定 (9則留言, 2005/05/12)
- SCO聲請破產保護 (0則留言, 2007/09/17)
- coLinux(Cooperative Linux) 測試 (3則留言, 2005/01/24)















最新留言