一个项目在多台SVN服务器上同步问题

有这样一个问题,我有一个项目,需要在多台不同协议的svn服务器上同步,大致情况是这样:
有三台服务器:
公司局域网的服务器 svn://serverA/testProject
家中局域网的服务器 svn://serverB/testProject
公网收费的svn空间 https://serverC/testProject
我从serverA上checkout下来了项目testProject,编辑完以后同步到serverA肯定没有问题。现在我需要将项目同时提交到serverA和C上,之后从serveC上checkout下来,同步到serverB上。
以后修改每次修改都要在两个服务器上同步,serverA和serverC或者serverB和serverC。
简单点说最终目的就是在公司里的代码和家里的代码要保持一致,但是公司里或者家里的svn都不能通过公网访问,所以要借助第三方的svn空间过渡。(只要能手动同步就行了,不要求服务器间自动更新)
请问能不能实现?

你原来的想法是不能实现的,SVN自身的同步机制svnsync中,只能对源服务器进行commit操作,对同步服务器只能checkout、update而不能commit的,否则会导致svnsync失败。也就是说要在多台SVN服务器之间保持数据一致的话,只能设置其中某一台服务器可写,其它服务器都必须只读。

建议你换个思路,为什么不直接将第三方公网的SVN空间作为主服务器呢?所有的checkout、update、commit操作都对这个serverC进行操作,反正你在公司和家里都能直接访问serverC。如果出于数据安全、编译部署方面的考虑,可以将公司或家里的SVN服务器都作为备份服务器,使用svnsync方式将serverC上的内容同步到serverA或serverB,但不对直接serverA、serverB进行写操作。追问

请问svnsync怎么实现?比如,在serverA和serverB上都有testProject,我从serverA上checkout下来的之后怎么在serverB上update

追答

若要用svnsync方式的话,看这篇文章吧,写的比较详细:

http://blog.chinaunix.net/uid-22646981-id-3084472.html

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