轮询SVN存储库并通过电子邮件通知。
svnpoller的Python项目详细描述
svnpeller定期监视目标svn存储库并传输 将每次提交的邮件提交给指定的通知方 是新的提交。
设定样本
svnpeller.ini:
[mail] smtpserver = localhost fromaddr = admin@example.com [sample-section] url = http://svn.example.org/path/to/repos/with/sub/path address = test1@example.com, test2@example.com
通知邮件示例
通知邮件示例:
From: admin@example.com To: test1@example.com, test2@example.com Subject: [sample-section: 1230] * Revision: 1230 * Author: foo * Date: 2009-11-22T17:40:47.287888Z * Message: The commit log message for this revision here. * Paths: M /with/sub/path/somefile1.py A /with/sub/path/somefile2.py * Diff: Index: somefile1.py =================================================================== --- somefile1.py (revision 1230) +++ somefile1.py (revision 1229)
要求
- Python2.4或更高版本(不支持3.x)
依赖关系
- setuptools或 distribute
- SVN外部命令(1.4或更高版本)
- lxml(可选)
功能
- 轮询指定的SVN存储库
- 通过电子邮件发送提交消息和差异
设置
创建环境(通过简易安装):
$ easy_install svnpoller
创建环境(通过构建):
$ hg clone http://bitbucket.org/shimizukawa/svnpoller $ cd svnpoller $ python bootstrap.py $ bin/buildout
复制并修改ini文件。示例:
$ cp <svnpoller installed path>/svnpoller/svnpoller.ini . $ vi svnpoller.ini
有关 svnpeller.ini配置文件。
用法
执行svnpeller命令:
$ svnpoller svnpoller.ini
或设置cron作业:
$ crontab -e 0 0 * * * /path/to/svnpoller /path/to/svnpoller.ini
历史记录
0.0.10(2010-9-16)
- 修正:svnpeller exec'svn diff-r100<;url>;'检查版本10000 命令的意思是“svn diff-r100:head<;url>;”,如果head=10000 svnpeller 需要较长的时间和较大的svn差异输出。
0.0.9(2010-6-23)
- 修正:提交消息包含多字节字符导致异常。
- 移除:lxml依赖项,变为可选 (感谢“federico”提供的补丁!).
- 修复:svn命令返回错误状态导致的异常 上次检查后未更新存储库的时间 (感谢“federico”提供的补丁!).
- 添加:不附加仅复制或仅删除或仅移动差异 (感谢“federico”提供的补丁!).
0.0.8(2010-6-20)
- 修正:当有多个地址时,通知邮件只发送第一个地址 (逗号分隔)在INI文件中指定。
0.0.7(2010-6-18)
- 修正:datetime.strptime替换为time.strptime(用于python-2.4)
- 移除:lxml依赖项。(如果是python-2.5或更高版本)
- 更改:支持的SVN外部命令版本:1.4或更高版本
0.0.6(2010-6-18)
- 修正:每次通知最新版本的变更软件。
- 附加:一些测试。
0.0.5(2010-5-20)
- 将已更改的路径列表添加到邮件中。
0.0.4(2010-5-20)
- 首次发布
待办事项
功能
- 添加调试选项'-debug/-d'以处理状态输出。
- 通过logging添加日志输出选项'-log/-l'。
- 为同一提交版本的非目标文件添加筛选选项。
- 介绍可自定义的邮件模板。
- 始终删除base64电子邮件编码。
- 添加电子邮件编码(现在使用base64编码的utf-8)
- 添加丢失目标时的通知机制(可能存储库结构已更改)
- 为同时保存的文件的筛选添加设置,但该设置不感兴趣。
- 添加汞(汞)支持。
- 添加bazaar(bzr)支持。
- 附加diff而不在主文本中打印。(配置?)
- 加快多URL轮询。
- 添加自动生成的ini文件,或使用粘贴模板。
环境
- 重构。
- 添加测试:多URL轮询
- 添加测试:python2.4、2.5、2.6支持检查。
已知问题
- “–dry run”更新最新版本配置值。