将svn的项目转移到另外一个仓库中

前几天在做一个项目的时候,因为需要,需要将Server A 上SVN仓库 repos1中的项目pro1迁移到Server B 上的SVN仓库中,首先想到的是:通过复制,但是仔细一想,这样是不可能的;然后想到的是先把项目pro1 checkout到本地,然后再 将本地的项目 import 到 ServerB的svn仓库中,但这样一来,ServerB上的SVN仓库中 就好比完全是一个新的pro1项目了,也就失去了svn管理的意义了。下面有一种方法可以解决:

 

(在进行下面的操作时,请注意备份仓库数据,以免操作出错,损坏数据;同时保证需要迁移的项目,都已经commit,以免丢失修改)

1.首先关闭两台服务器的svn所有服务,比如(apache、svn),(以避免在进行迁移时又有其他的用户访问提交,更新什么的...  

 

2.将ServerA上的 项目pro1所在的仓库进行备份,使用命令:

      svnadmin dump oldrepos > reposdumpfile

      上面的 oldrepos 表示服务器Server1上需要备份的仓库,如:E:\svn_root\repos1;

       reposdumpfile表示一个中转的文件,文件名随意;

       运行完上面的命名后,文件reposdumpfile就存储了仓库oldrepos的信息和所有项目;

 

3.如果需要将Server A上repos1中的所有项目迁移到Server2上,则将reposdumpfile文件直接拷贝到Server2上,然后转到 步骤5;

 

4.如果我们只需要repos1仓库中的pro1则我们需还要对reposdumpfile文件进行过滤,命令如下:

       svndumpfilter include pro1 < reposdumpfile< pro1dumpfile

       上面的 include 表示 包含的意思,也就是说,将reposdumpfile中的 pro1 的项目取来放到文件 pro1dumpfile 中;如果使用 exclude 这表示相反的意思,将不是项目pro1的项目存放到文件中去;然后将pro1dumpfile文件拷贝到Server2上;

 

5.在Server2上运行如下命令,则完成了项目的迁移;

      svnadmin load newrepos < pro1dumpfile

      上面的newrepos表示:Server2电脑上的 svn仓库的路径 如:F:\svn_root\repos2;

 

6.最后打开svn服务,这样就成功的将项目迁移到了其他仓库中

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值