我有两个VisualSVNServer:master(http://example.com/svn)和镜像(备份)
在每个服务器中都有相同的存储库结构,有100个项目(20 GB):
D:Repositories
MyProject1
MyProject2
MyProjectN
目前,我为每个项目手动同步镜像服务器,例如:
svnsync synchronize http://127.0.0.1/svn/MyProject1 http://example.com/svn/MyProject1
svnsync synchronize http://127.0.0.1/svn/MyProject2 http://example.com/svn/MyProject2
svnsync synchronize http://127.0.0.1/svn/MyProjectN http://example.com/svn/MyProjectN
是否可以用一个命令同步镜像中的所有项目?
如果http://127.0.0.1/svn/
是存储库,则可以使用svnsync synchronize http://127.0.0.1/svn/MyProject1 http://example.com/svn
。
然而,我怀疑事实并非如此,http://127.0.0.1/svn/
实际上是一个虚拟目录,它是两个独立存储库的公共父目录。如果是这种情况,你就不能这样做。子版本根本不允许。
编辑:根据您随后的编辑,您有多个存储库由一个共同的父级(root)提供服务。这是第二段的情景。不能用一个svnsync
同步所有存储库,必须分别同步每个存储库。
那么,你该如何区分呢?运行svn info http://127.0.0.1/svn/MyProject1
和svn info http://127.0.0.1/svn/MyProject2
如果两者返回的Repository Root
值相同,则第一段适用。如果您获得与存储库根目录相同的URL(IOW,Repository Root
对于MyProject1
是http://127.0.0.1/svn/MyProject1
,对于MyProject2
是http://127.0.0.1/svn/MyProject2
,则它们是独立的存储库。