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

About author
Disclaimer
The opinions and comments expressed herein are my own personal opinions and do not represent my employer's view in any way.
Comments
No comments.
Add comment
Title
Title is required.
Name
Name is required.
Email
Please input your personal email with valid format.
Comments
Please input comment content.
Captcha Refresh
Input captcha:

Subscription

Statistics

Locations of visitors to this page