互不联通的两个SVN服务器之间的双向同步

来源:互联网 发布:黑米软件 编辑:程序博客网 时间:2024/05/01 16:43

SVN从1.4版开始支持两个repository之间的同步,但这种“同步”只是单向的,只能把repository-1的数据同步到repository-2中,实际上repository-2只是一个镜像而已。

在我们的项目中,开发团队分别在两个不同的地点,处于安全考虑,两地的内网不对外开放,因此两地无法访问同一个SVN repository,需要分别建立一个repository,并实现这两个repository之间的双向同步。

解决方案如下:

1). 在两地分别建立两个SVN服务器repository-1和repository-2,两个的开发人员分别使用各自的SVN服务器

2). 由一人携带笔记本,负责同步两个repository中的数据。如果要把repository-1中的更改同步到repository-2中,则方法如下:
    在笔记本上建立localcopy-1目录,从repository-1中export出所需的文件(注意,是export,而不是check out),这样,localcopy-1目录下不会包含svn元数据。
    将笔记本携带至repository-2所在地点,建立localcopy-2目录,并从repository-2中check out所需的文件,这样localcopy-2目录下会包含svn元数据。
    将localcopy-1中的文件复制到localcopy-2目录下,覆盖所有的同名文件。由于localcopy-2中包含了svn元数据,可以由SVN客户端工具在自动识别出哪些文件做了哪些更改。最后,把localcopy-2目录中的文件commit到repository-2中即可。

    若要把repository-2中的更新同步到repository-1中,则原理同上,先建立localcopy-2目录,从repository-2中export出文件。然后将笔记本携带至repository-1所在地点,建立localcopy-1目录,从repository-1中check out文件到localcopy-1目录。然后将localcopy-2目录下的文件覆盖到localcopy-1目录,最后把localcopy-1目录commit到repository-1即可。 

SVN服务器端软件下载:http://subversion.tigris.org/

SVN客户端软件下载:http://tortoisesvn.tigris.org/

 
原创粉丝点击