一个项目在多台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

温馨提示:内容为网友见解,仅供参考
无其他回答

两台SVN服务器之间,是否可以实现部分目录的同步
要实现两个SVN服务器用到同一个文件夹,最好的处理方式是将该文件夹独立出来作为一个单独的版本库,然后两个SVN服务器都通过svn的外部引用方式使用该版本库。对这个文件夹的修改都在这个单独的版本库中进行,另两个SVN服务器对它都是以只读方式访问。

SVN服务器项目如何与本地项目同步、关联?
1、打开eclipse开发工具,在需要进行关联的项目上点击右键,选择team。2、选择share Project,在team操作按钮右侧,选择分享项目。3、选择svn版本控制。高版本的eclipse都支持svn、cvs、git等代码同步插件,这里使用svn演示,选择svn插件。3、选择需要关联的项目,找到svn目录链接,选择需要和哪个项目进行关联,...

SVN版本控制器的问题,两个人在不同的内网中,如何进行同步更新代码,提交...
1、到googlecode等提供svn服务的网站,申请一个源码项目,两个人都连到那个项目就行了 2、某个人在自己的电脑上架设SVN服务器,后面就参考前面的第二种方案。家里的网络环境以不固定外网IP地址的ADSL线路居多,这时就需要到花生壳申请一个免费域名了,否则安装了服务器的那台电脑一重新拨号,就可能导致...

svn同步不了,报错:同步 SVNStatusSubscriber 时报告了错误.1 中的 0...
svn同步不了报错:同步 SVNStatusSubscriber 时报告了错误,是设置错误造成的,解决方法如下:1、首先在电脑桌面鼠标右键,TortoiseSVN-选择Settings。2、打开界面如下图,然后在左侧栏选择“Saved Date”选项。3、然后在右侧栏选择“authentication data”后的“Clear”。4、然后弹出下图页面,这就是之前保存...

SVN sync命令是干什么的?
svnsync是用来实现将一个SVN服务器上某个版本库的内容同步到另一个SVN服务器上,一般用于SVN服务器的备份,最常见的做法是将此指令被放入post-commit钩子中,实现SVN服务器的实时备份。具体 指令格式 网上搜索一下吧。

本地现有的项目(文件) 怎么和SVN服务器上已有的项目(文件)相关联?_百度...
4)打开ECLIPSE,import这些项目。注意:JAVA其实都是以文件作为载体的。所以前面硬盘上已经和SVN同步了,用ECLIPSE导入进来后他们还是同步的。根本不需要额外的工作。而且,用这种导入的形式,可以保留原有项目的属性。还有,关于做好本地程序后,可以批量提交到服务器的,在项目上右击,然后选择提交,就可以...

「SVN迁移」SVN迁移服务器代码,包含全部提交日志
问题描述:公司需要将一个SVN远程服务器的全部已有项目迁移到一台新服务器的SVN中,其中需要包含全部的提交日志,目前此工作已全部迁移完毕,特此记录一下操作步骤 环境描述:1. 要迁移的远程SVN的 Windows服务器 2. 迁移目的SVN的Windows服务器 操作流程:1. 使用SVN备份功能导出原先的SVN仓库文件 2. ...

请问怎么把服务器上项目提交到svn上,让客户端能访问到
你的意思是说你已经有一台SVN服务器,另外还有一个待发布的项目,现在需要把这个项目内容置于SVN的管理之下吗?如果是这个意思的话,你在SVN服务器上存放各版本库的文件夹内,先新建一个版本库,然后把新建的版本库检出(checkout),把你要发布的项目内容复制到checkout出来的这个文件夹中,然后执行...

怎样利用ansible对多台机器同时进行svn cleanup
1、可以使用SVN clean up来清除锁定。2、如果不是本目录锁定,系统提示上一层目录锁定,需要到上一层或者根目录中清除。3.如果在根目录下都无法clean的话,一般采取的方法是另外找一个目录重新CHECKOUT。但有时有时SVN目录下可能有一些自己本地修改的文件,还未提交到SVN服务器,这时重新CHECKOUT需要...

...用vss或svn管理软件代码,几个人合作开发一个项目,如何做到项目所有代 ...
其中第1、2步相对比较简单,难在第3步。实现第3步关键是要改变测试习惯,需要将开发环境和测试环境分离,一般要有一台测试服务器(可以考虑直接搭建在SVN服务器所在的主机上),要测试时就通过某种方式将最新代码编译后部署到测试服务器上,而不能是开发人员用自己的电脑来做测试服务器。具体有多种方式...

相似回答