跳转到主要内容

轮询SVN仓库并通过电子邮件通知。

项目描述

svnpoller 定期监视目标SVN仓库,并在有新提交时向指定的通知方发送提交邮件。

设置示例

svnpoller.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)

要求

  • Python 2.4或更高版本(不支持3.x)

依赖关系

功能

  • 轮询指定的SVN仓库

  • 通过电子邮件发送提交消息和diff

设置

创建环境(通过easy_install)

$ easy_install svnpoller

创建环境(通过buildout)

$ 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

请参考设置示例部分以了解配置文件< cite>svnpoller.ini的格式。

用法

执行svnpoller命令

$ svnpoller svnpoller.ini

或设置cron作业

$ crontab -e
0 0 * * * /path/to/svnpoller /path/to/svnpoller.ini

历史

0.0.10 (2010-9-16)

  • 修复:svnpoller执行’svn diff -r100 <URL>’以检查修订版本10000,命令意味着’svn diff -r100:HEAD <URL>’,然后如果HEAD=10000,svnpoller将花费很长时间并产生大量的svn diff输出。

0.0.9 (2010-6-23)

  • 修复:包含多字节字符的提交消息导致异常。

  • 删除:lxml依赖关系,变为可选(感谢‘Federico’提供的补丁!)。

  • 修复:由于从svn命令返回错误状态且仓库自上次检查以来未更新而导致的异常(感谢‘Federico’提供的补丁!)。

  • 添加:仅复制、仅删除或仅移动的diff不附加(感谢‘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)

  • 添加丢失目标时的通知机制(可能是仓库结构已更改)

  • 添加对同时保存但无趣的文件的过滤设置。

  • 添加mercurial(hg)支持。

  • 添加bazaar(bzr)支持。

  • 在主文本中不打印diff(配置?)

  • 多URL轮询加速。

  • 自动生成ini文件,或使用Paster模板。

环境

  • 重构。

  • 添加测试:多URL轮询

  • 添加测试:Python2.4,2.5,2.6支持检查。

已知问题

  • “–dry-run”更新最新修订的配置值。

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

svnpoller-0.0.10.tar.gz (148.4 kB 查看哈希

上传时间

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面