[原创]给你的cvs服务器加上邮件通知

发布于 2022-10-03 12:10:18 字数 4346 浏览 19 评论 0

作者:苏小勇              http://www.bestunix.net

原文: http://www.bestunix.net/p/cvsmail.php

关键字 cvs cvsmail 邮件通知 邮件列表

为什么要用cvsmail

当我们开发人员分散各处时,很难了解cvs server上到底更新了什么,而且每天去阅读cvs上大量的更新日志也是一件很麻烦的事情。通过cvsmail,你可以及时准确的通知每个开发人员服务器上的内容发生了什么更新。

前提

假设你已熟知CVS服务器设置指南 (http://www.bestunix.net/p/cvs_server_config.php ),并已配置好了自己的CVS服务器
假设你已经配置好了mail服务器,如果没有配置的话请参考xuki的 qmail安装指南 (http://www.xuki.org/linux_qmail.htm)

如何获得

其实cvsmail有好几个版本,不过这里我选用的是最简单的那个,安装配置非常容易,而且它已经可以实现我们需要的大部分的功能。

http://www.over-yonder.net/~fullermd/projects/cvsmail/

可以去上面网址下载cvsmail的最新版本。

安装

这里的安装分两种,我逐个来说明

第一种

如果你有一个原始的CVSROOT模块,那么你可以使用install.pl脚本来进行安装。下面分别按步骤介绍

1.初始化你的CVS仓库,使用cvs init,如果不明白的话,可以参考 CVS服务器设置指南( http://www.bestunix.net/p/cvs_server_config.php )
2.check out出一个你的CVSROOT模块的拷贝,
我们假设把这个模块放入/tmp/cvs目录,服务器端CVS仓库路径为/home/cvsroot

  1. mkdir /tmp/cvs
  2. cd /tmp/cvs
  3. cvs -d :pserver:sxy@127.0.0.1:/home/cvsroot login
  4. cvs -d :pserver:sxy@127.0.0.1:/home/cvsroot co CVSROOT

复制代码

3.进入你下载并解压缩以后的cvsmail目录,运行install.pl脚本,如下

./install.pl /tmp/cvs/CVSROOT

4.进入/tmp/cvs/CVSROOT目录,根据你的系统设置来编辑cvsmail.cfg文件,主要需要编辑下面几个地方

$MAILTO 设置为cvs commit时会接收到邮件的用户,注意这里只能设置一个用户,如果需要多个用户接收的话,则需要设置为一个邮件列表
需要注意的是这里设置的是用户名,实际上接受邮件的是 username@hostname,比如我们设置的用户名是cvsupdate,当前主机名是bestunix.net,那么收件人就是cvsupdate@bestunix.net

$FROM_HOST 发件人的域名,默认是主机名,一般不用做什么设置,cvs的发件人默认是cvsroot,所以,我们收到的通知邮件一般都是 cvsroot@hostname发送的,比如cvsroot@bestunix.net

$SENDMAIL 一般保留默认就好了,如果你的邮件服务器是qmail的话,需要改为"/var/qmail/bin/qmail-inject"

$P_* 这里主要是指定这些应用程序的路径,一般不用修改,如果你不确定的话,可以用whereis来察看一下

5.修改完上面选项以后,用 cvs commit提交到服务器上,下次cvs commit你就会收到邮件通知了.

第二种情况,没有一个原始的CVSROOT

那么,我们需要手工做一些install.pl的工作,我们看看install.pl都做了什么

1. Copy cvsmail.pm, cvsmail.cfg, cvsmail.pl, precommit.pl到你check out出来的CVSROOT里面,比如/tmp/cvs/CVSROOT

  1.   cp cvsmail* /tmp/cvs/CVSROOT
  2.   cp pre* /tmp/cvs/CVSROOT

复制代码
  
  然后把这几个文件都加入CVS仓库
  

  1. cvs add cvsmail.pm
  2.   cvs add cvsmail.cfg
  3.   cvs add cvsmail.pl
  4.   cva add precommit.pl
  5.    

复制代码
2. 在CVSROOT/commitinfo这个文件中加入下面行

  1.    ALL               $CVSROOT/CVSROOT/precommit.pl

复制代码

3. 在CVSROOT/loginfo这个文件中加入下面行

  1.    ALL               $CVSROOT/CVSROOT/cvsmail.pl %{ sVv }

复制代码
   
4. 修改cvsmail.cfg,同第一种情况   
   
5. 提交上面修改过的文件

   cvs commit

一点经验:

    cvsmail本身没有什么日志可查,如果你发现自己的cvsmail不能正常使用时,可以到cvsroot的home目录中察看Mailbox文件中的退信信息

一个cvs更新邮件的样例

  1. 主题: [cvs update] cvs commit: CVSROOT cvsmail.cfg
  2. 邮件内容:
  3. cvsroot             2005/07/23 21:23:47 CST
  4. Modified files:
  5.    .                    cvsmail.cfg
  6. Log:
  7. add header
  8. Revision  Changes  Path
  9. 1.11      +1 -1    CVSROOT/cvsmail.cf     

复制代码

有问题欢迎到 http://www.bestunix.net 上留言跟我联系

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

贱贱哒 2022-10-10 12:10:18

谢谢楼主

我可以试验下

我的cvs, cvsweb都成功了

在按这个也可以呵呵

天赋异禀 2022-10-10 12:10:18

呵呵,其实文档很详细,不过就是没有例子,很多地方要多试几遍才对,这里我给出了例子,相信安装过程中的大部分疑问都没有了.

差↓一点笑了 2022-10-10 12:10:18

不错,你的blog也不错。

故事↓在人 2022-10-10 12:10:18

兄弟我做了

可是好象没有反映呀

你另情深 2022-10-10 12:10:18

你的邮件服务配好了吗,看看你的/home/cvsroot目录下面有没有一个Mailbox的文件

原帖由 "haoyufu" 发表:
兄弟我做了

可是好象没有反映呀

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文