现在的位置: 首页 > 综合 > 正文

使用Python在SVN Commit时自动通知所有用户!

2013年02月23日 ⁄ 综合 ⁄ 共 812字 ⁄ 字号 评论关闭

这篇文章针对以下情况:

  • 使用VPN来管理文件
  • 使用飞鸽或飞秋作为局域网交流软件
  • 想要在某用户commit自己的文件时,其他用户都收到通知,因此可以适时update
下面是设置方法,写的很简略,如果熟悉svn和python肯定能看明白,如果有疑问就问我吧~ 不想写太繁琐了

1.写Python脚本

首先写一个Python的脚本用于发飞秋消息。可选的是这个脚本能够接受参数(个数和用途取决于下一步的hook)
以下就是一个简单脚本,具体为啥这么写请自行Google,可能最难理解的就是发送的那一串bytes,其实就是按照飞秋和飞鸽的协议写的。
#coding=gbk
import socket
import sys
udp=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
udp.connect(('SUXJ',2425)) #自行替换主机名
udp.send(bytes('1:100:MSG:MSG:32:('+sys.argv[1]+') '+sys.argv[2]+'更新了文件哟~','gbk'))

这里只是简单的写了自己的主机,当然可以用一个for来群发。
这个脚本保存,路径假设为 X:/Y/send.py。然后下一步~

2.设置Repositoris属性

然后为Repositoris添加hook,所谓的hook就是钩子的意思,意思就是某个事件发生时就钩起你指定的命令。
右击Repositoris选择属性->hooks,在比如说start-commit里双击,这里添加命令,简单的可以直接写命令行的命令,复杂的可以写类似bat的cmd格式命令,这里我们这么写:
c:
c:\Python31\python.exe X:\Y\hooktest.py %1 %2

这样以来一旦hooks收到挑逗便会执行这串命令,将参数(路径和用户名)传递给我们写好的py脚本,脚本把参数发给主机,

3.设置完成

现在commit试一试?很爽吧~
【上篇】
【下篇】

抱歉!评论已关闭.