SVN客户端如何探知到服务端是否有更新?
应用场景
可能存在服务端和客户端概念不准的问题, 这里暂定SVN服务器仓库为服务端, 其他服务器上检出的SVN目录为客户端
仓库使用SVN, 在多个服务器上存在多个SVN检出的目录, 当SVN服务端仓库有提交和更新时, 如何让客户端感知到并且更新检出的代码?
尝试
- 使用SVN的hook功能, 发现无论是服务端hook还是客户端hook, 都只能在某个动作(例如提交前后)发生时执行某些操作, 一般操作的都是本地侧的文件或者调用本地侧的脚本, 无法更新位于其他服务器的SVN检出目录 (因权限和涉密原因, 不讨论在SVN服务端调用脚本, 使用ssh远程操作其他服务器的情况)
- 提出使用Rsync同步各服务器来同步检出目录的方案, 因环境原因, 多个服务器不支持批量部署, 操作成本过高, PASS
思考
我觉得SVN客户端的更新是一种相对于服务端来说的被动操作, 是否更新本地的内容是由SVN客户端自己决定的, SVN客户端不能主动探知到服务端是否更新了内容, 只能在执行svn update
命令时才能知道服务端有没有更新.
hooks更多的是实现在某端发生了某个动作使触发其他动作, 比如调用脚本等.
问题
有没有一种方法可以实现当SVN服务端有更新时, 所有的客户端检出的目录都能自动更新?