svn提交的时候,如何处理才能同时提交到两太服务器上

或者一次可向两个仓库同时提交

首先要确定的一点,这两台SVN服务器中只能有一台可以进行读写操作,另一台只能做备份用(你可以从上面读取数据,但不能修改上面的数据)。

这样的话,可以使用SVN自带的同步机制,也就是svnsync命令,将源SVN服务器上的内容同步到备份SVN服务器上。一般是把svnsync指令放到源SVN服务器的post-commit钩子中,这样每次commit成功后,源SVN服务器就会自动调用这个钩子,执行一次与备份服务器之间的同步。

svnsync的具体用法稍微有点复杂,你搜索一下吧,很多这方面介绍。

因为不了解你为什么要同时上传到两台SVN服务器,所以只能暂时给出这样一个方案,如果你能详细描述你要达成的目的,那可能还会有其它的方案。追问

照以上步骤执行到第3步时,用户名密码都对了,但提示了如下错误,是什么原因啊

追答

你的pre_revprop-change.bat 应该是 pre-revprop-change.bat,文件名错了一个字符

另外,.bat文件是服务器为windows系统时用的,如果是linux系统,应该不用后面的.bat扩展名

追问

这个 pre-revprop-change 文件里只要一句 exit 0 就可以了吧,可是我按照这样的设置后进行第3步初始化,又报错了,,

直接拷贝pre-revprop-change.tmpl 然后将最后三行代码用exit 0 代替的话,也还是出现这样的错误,

追答

正常的话pre-revprop-change中只要一句exit 0就行了,不过你可以执行一下 chmod 755 pre-revprop-change ,给这个脚本加个执行权限,然后再svnsync init看看

我一般在windows下装SVN服务器,在linux下装的比较少,有些奇怪问题没有遇到过,得反复试验才行

追问

chmod +x pre-revprop-change和chmod 755 pre-revprop-change 有什么区别吗
这样操作同步是可以了,可就是没法自动同步,即使设置了源库的post-commit钩子也还是需要手动,真的是非常纠结

追答

post-commit钩子设置了还是不能自动运行?那你要先确定一下post-commit这个钩子有没有自动运行,比如让这个钩子输出点什么。如果post-commit钩子运行了,那问题就出在post-commit的具体语句上,如果post-commit没运行,那八成还是权限问题。

还有要注意:post-commit这个钩子应该是放在备份源服务器的hooks文件夹下,不是在备份目标服务器的hooks文件夹下

追问

我是在原始服务器上该库的hooks下的post-commit钩子做了修改,增加了三行(红色圈出的),注销了一行(蓝色圈出的),并用chmod 755 设置了权限,但是提交的时候不能自动同步,

还有就是将源服务器库同步到目标服务器后,目标服务器没有日志信息,查看日志的时候只能看到版本号,其他信息都没有

追答

不知道你commit时报了什么错,是不是报找不到svnsync?
你设置了变量 SVNSYNC=/usr/local/bin/svnsync ,但后面又没用到这个变量

温馨提示:答案为网友推荐,仅供参考
相似回答