情况说明:ServerA上有svn的项目需要同步到ServerB上指定的目录下,需要带有所有的提交历史纪录
1.登陆ServerA所在电脑,打开CMD,以管理员身份运行
2.在ServerA中,进入svn数据所在目录
一般会在 C:\Program Files\VisualSVN Server\bin,没有找到的话,就去找VisualSVN Server安装目录下的bin文件夹下
3.将ServerA上的项目program1所在的仓库进行备份
命令为: 其中 oldRepositories 是ServerA上的要备份的项目的仓库地址,当前要备份的项目是NewsBdzh
Svnadmin dump oldRepositories > reposdumpfile
CMD中显示如下 把备份的文件放在D盘下
C:\Program Files\VisualSVN Server\bin>svnadmin dump D:/Repositories\test>D:/all.dump
4.如果需要将Server A上Repositories1中的所有项目迁移到Server2上,则将reposdumpfile文件直接拷贝到ServerB上,然后转到 步骤8;
5.如果我们只需要Repositories1仓库中的program1则我们需还要对reposdumpfile文件进行过滤,命令如下:
svndumpfilter include 项目下的目录路径 < D:/all.dump>d:\任意可以为当前目录名称.dump
具体实施: 由于当前项目中有三个文件夹,分别为branches trunk 和 tags ,具体的提交文件都在这三个文件夹下.
svndumpfilter include branches/Screen < D:/all.dump>d:\Screen.dump
6.把上述分析过滤出来的文件,或是整个(项目整个导入的话)文件,从ServerA拷贝到ServerB上
7.打开ServerB的电脑,并且打开CMD 进入svn数据所在目录
一般会在 C:\Program Files\VisualSVN Server\bin,没有找到的话,就去找VisualSVN Server安装目录下的bin文件夹下
显示如下C:\Program Files\VisualSVN Server\bin>
8.注意:在ServerB的项目中需要建立相同名称父目录,平移后会自动放到该父目录下面,例如本次同步,需要在项目中 创建branches trunk 和 tags,三个文件夹
例如:在 svn 上创建 branches文件夹 因为Screen 在branches这个文件夹下
9.在ServerB上运行如下命令,则完成了项目的迁移;
svnadmin load ServerB中的仓库位置Repositories < E:/步骤5中生成的文件.dump
例如:如下 因为我的仓库位置是F:\Repositories,其中的项目名称是test ,test 里面已经创建好了文件夹
因为本地的svn 地址为https://minint-hf8kf70/svn/test/ 所以如下是这样的代码
svnadmin load F:\Repositories\test < E:/vuetest.dump
svnadmin load F:\Repositories\test < E:/Management-vue.dump