轮询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)

依赖关系

功能

  • 轮询指定的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”更新最新版本配置值。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java无法在未设置数据源的情况下启动springboot应用程序   返回/泛型的类型?   java通过在navigationView中按id重新加载navigationView内容   java实现安卓的状态更新   java Equals()对于两个相等的字符串不返回true   java如何保存屏幕截图(matlab)   java GWT如何在重新加载页面之前确保函数已完全执行   java在Groovy中实现ObjectJSON映射的标准方法是什么?   java在ApacheTomcat中,是否可以通过连接器过滤多个访问日志文件?   java当JVM达到其Xmx限制时,它会强制垃圾收集吗?   如何在JAVA中生成包含特定数字的不同随机数列表?   rcp中透视图之间的java切换   java理解名为“分区”的Linkedlist算法中的无限循环   RestTemplate的java测微计统计信息   Android中使用自定义服务BLE的java读/写特性   java验证输入以确保负数   关于Java扫描器的io基本查询   java如何使用子字符串或其他函数将字符串拆分为单词?   java Storm群集重复元组