组内用svn进行版本控制,每天来公司都要手动检查svn是不是更新了。但是工程内文件路径太多,不是每次更改都是自己关心的,所以领导希望开发个svn监控工具。配置每个人关心的svn路径,当相关路径更新时,可以通过飞秋的方式发送给相关人员。
svn服务器提供了钩子功能,在提交等事件发生时,可以运行相应的shell脚本。开始考虑在服务器端进行版本监控,当版本提交后,检查改动的文件,然后查表去通知相应的人员。但是svn服务器的文件存储方式不同于客户端显示的路径,文件之间没有一个明确的逻辑关系,想通过检查哪些文件做了改变去做svn检查基本无法实现。
后来考虑增加一个专门代理做版本检查,当有人提交svn后,服务器就像代理发送一个通知,代理本身维护一个svn的最新版本,当代理接到通知就对自身的svn路径进行更新,然后检查哪些文件做了修改,再相应通知。