SVN版本库的备份、还原、移植(初级篇、中级篇和高级篇)

2013年12月6日 发表评论 阅读评论

一、初级篇

版本库数据的移植:svnadmin dump、svnadmin load

导出:
$svnlook youngest test //查看到目前为止最新的版本号
$svnadmin dump test > dumpfile //将指定的版本库导出成文件dumpfile
导入:
$svnadmin load newtest < dumpfile

二、中级篇

$svnadmin dump test –r 23 >rev-23.dumpfile           //将version23导出
$svnadmin dump test –r 100:200 >rev-100-200.dumpfile  //将version100~200导出
对比较大的库可以分解成几个文件导出,便于备份
$svnadmin dump test –r 0:1000 >0-1000.dumpfile
$svnadmin dump test –r 1001:2000 --incremental >1001-2000.dumpfile
$svnadmin dump test –r 2001:3000 --incremental >2001:3000.dumpfile
在导入时,可以将这几个备份文件装载到一个新的版本库中
$svnadmin load test < 0-1000.dumpfile
$svnadmin load test < 1001-2000.dumpfile
$svnadmin load test < 2001:3000.dumpfile

三、高级篇

过滤版本库历史: 

假设有三个项目的版本库/RigTMS、/DocProtect 、/Odin 现需要将这三个项目转移到独立的三个版本库中,需要做如下操作

1、转储整个版本库

 $svnadmin dump /path/to/repos > repos-dumpfile

2、将转储文件三次过滤,每次仅保留一个定级目录,即可以得到三个转储文件

$svndumpfilter include RigTMS < repos-dumpfile > RigTMS-dumpfile
$svndumpfilter include DocProtect < repos-dumpfile > DocProtect-dumpfile
$svndumpfilter include Odin < repos-dumpfile >Odin-dumpfile

3、虽然现在的RigTMS、DocProtect、Odin都可以用来创建一个可用的版本库,但他们保留了原版本库的精确路径结构(例如: RigTMS的顶级目录为/RigTMS/trunk、/RigTMS/branches、/RigTMS/tags,而非我们所需要的/trunk、/branches、/tags),如果要实现目标,需要编辑转储文件,调整Node-path和Copyfrom-path头参数,将路径/RigTMS删除,同时还要转储数据中创建RigTMS目录的部分。

Node-path:RigTMS
       Node-action:add
       Node-kind:dir
       Content-length:0

注意点:如果使用手工编辑dumpfile文件来移除一个顶级目录,需要注意不要让使用的编辑器将换行符转换为本地格式(比如将/r/n转换为/n),否则文件的内容就与原来的格式不符,这个转储文件就失效了。具体做法就是当你在使用编辑器打开文件的时候,编辑器会提示用户是否需要转换格式,一定要选择“否”,切记!!切记!

4、接下来就是创建三个新的版本库,然后将新过滤出来并修改好的三个转储文件导入

$svnadmin create RigTMS;svnadmin load RigTMS < RigTMS-dumpfile
$svnadmin create DocProtect;svnadmin load DocProtect < DocProtect-dumpfile
$svnadmin create Odin;svnadmin load Odin < Odin -dumpfile

备份环境注意点: 

1、确保没有其他进程访问版本库,关闭apache、svnserve服务 

2、成为版本库的管理员,如果以其他身份还原版本库,可能会改变版本库文件的访问权限,导致在恢复后依旧无法访问 

3、svnadmin recover /path/to/repos 

4、重新启动服务进程




本站的发展离不开您的资助,金额随意,欢迎来赏!

You can donate through PayPal.
My paypal id: itybku@139.com
Paypal page: https://www.paypal.me/361way

分类: 开源软件 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.