互不连接的两个SVN双向同步方法

404 views 0 comments posted at about 10 years ago Raymond Tang

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即可。

Add comment

Comments (0)

No comments yet.
In this Page