loginfo.rb:自動寄送修改記錄信件
在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)
- TortoiseSVN的命令行操作 (0則留言, 2015/04/03)
- 整合Redmine的TortoiseSVN外掛:TurtleMine (0則留言, 2015/01/23)
- 搬移Subversion主機的步驟 (0則留言, 2017/12/25)
- 針對Redmine 2.6回應緩慢的調整 (0則留言, 2015/01/28)
- espanso:免費且開源的熱字串工具,同時支援三大作業系統 (0則留言, 2020/07/19)
- 打破Windows與UNIX的藩籬:nyagos-介於UNIX跟DOS之間的混血的CommandLine Shell (0則留言, 2024/04/14)
- [Obs#40] 日文學習利器!也能處理中文注音與拚音標記-Furigana外掛 (0則留言, 2021/05/13)
- Anti-Spam SMTP Proxy造成郵件主機異常?! (0則留言, 2010/08/04)
- 我的Subversion與Trac使用經驗 (4則留言, 2008/01/12)
- [SVN] Hook scripts的使用方法 (0則留言, 2005/12/09)
- [轉貼] 中國博客網下月開始收費 (0則留言, 2005/06/15)
- Obs149-左邊長筆記,右邊卡片的編輯佈局:Query Control, Note Gallary (0則留言, 2024/01/28)
- Gmail好用擴充之一:Snooze Your Email-讓郵件打瞌睡 (0則留言, 2013/02/24)
- Pake:快速打包網站服務,使用Tauri安裝檔只有3MB Win+Linux+macOS (0則留言, 2023/01/15)
Sorry, 很久沒用Google sc…