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

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

导出:

$svnlook youngest myrepos //查看到目前为止最新的版本号

$svnadmin dump myrepos > dumpfile //将指定的版本库导出成文件dumpfile

导入:

$svnadmin load newrepos < dumpfile

中级篇:

$svnadmin dump myrepos –r 23 >rev-23.dumpfile           //将version23导出

$svnadmin dump myrepos –r 100:200 >rev-100-200.dumpfile  //将version100~200导出

对比较大的库可以分解成几个文件导出,便于备份

$svnadmin dump myrepos –r 0:1000 >0-1000.dumpfile

$svnadmin dump myrepos –r 1001:2000 --incremental >1001-2000.dumpfile

$svnadmin dump myrepos –r 2001:3000 --incremental >2001:3000.dumpfile

在导入时,可以将这几个备份文件装载到一个新的版本库中

$svnadmin load myrepos < 0-1000.dumpfile

$svnadmin load myrepos < 1001-2000.dumpfile

$svnadmin load myrepos < 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、重新启动服务进程

原文来自:http://blog.csdn.net/windone0109/article/details/2908133

时间: 2024-08-26 03:10:40

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

SVN版本库的备份及迁移

备份某个版本库:打开控制台窗口 1.备份某个版本库: svnadmin dump myrepos > dumpfile //将指定的版本库导出成文件dumpfile 1.导入某个版本库: svnadmin load newrepos < dumpfile 更详细参考 http://blog.csdn.net/windone0109/article/details/2908133 初级篇: 版本库数据的移植:svnadmin dump.svnadmin load 导出: $svnlook you

用svnsync 同步备份 svn 版本库 从一台服务器到另一台服务器

如用svnsync 同步备份两台机器的svn .(就以linux服务器到windows服务器为例子) 要同步的项目名称:source_svn svn 版本库1 .4 以上 源目录:            svn://192.168.16.199/source_svn 同步目标目录:      http:// 目标IP:8080/source_svnbak 方法: 1.如果目标目录存在相同的项目,请先清除,重新建立空项目 2.在目标服务器中建立svn版本库source_svnbak svnadmi

对svn版本库磁盘空间瘦身

问题原因: 平常自己写的测试项目都放在自己电脑上的一个svn版本库里,有些资料放进去后来又删掉了,但是svn版本库是不会减少的, 如果放进去了一个200M的项目,版本历史是 50, 这时候可去看下svn库,下的 db/revs/0/50 这个文件,将永久存在这个svn库中, 如果这个项目将来想还原出来,这个功能倒是有用,如果是永久放弃,就需要 对svn库进行下瘦身了 一. 导出整个版本库 svnadmin dump F:/SVN/test  > F:/SVN/dump 我的版本库跟路径是F:/S

Linux 搭建svn版本库

一.安装svn服务器端yum install subversion      从镜像下载安装svn服务器端 如果后面执行“svnadmin create /usr/local/svn/sunny”提示错误:“command not found”,把这句“mount /dev/cdrom /media/cdrom/  ”话挂在这句“yum install subversion”之前 cd /usr/local/              //进入目录,准备创建svn目录 mkdir svn    

SVN版本库(访问权限)配置实例笔记

http://blog.csdn.net/zjianbo/article/details/8578297 SVN版本库(访问权限)配置实例笔记 本系列文章由ex_net(张建波)编写,转载请注明出处. http://blog.csdn.net/ex_net/article/details/8578297 作者:张建波 邮箱: [email protected] 电话:13577062679 欢迎来电交流! 访问控制如图所示 说明: why用户仅仅只能访问(读写)yjb目录,对其它目录是无法“查看

在windows上自动备份SVN版本库及定时删除

下面的脚本是在windows SVN的备份策略,采用的是hotcopy的方法 方案一: 1.先创建一个fullBackup的脚本:fullBackup.bat echo off rem Subversion的安装目录 set SVN_HOME="D:\Program Files\Subversion\bin" rem 所有版本库的父目录 set SVN_ROOT=D:\svnserver rem 备份的目录 set BACKUP_SVN_ROOT=D:\backupsvn\fullba

SVN版本库修改URL路径或者IP地址

服务器的IP地址或者URL变更,版本库服务器的IP也要修改,因为当初安装SVN URL没有使用别名,所以使用的人都要修改客户端的IP,以下是参考网上的资料. 1.Windows TortoiseSVN客户端: 在工作复本的根目录上右键->TortoiseSVN->重新定位(Relocate),然后修改URL, 2.Mac OS或Linux客户端: svn sw --relocate svn://old_ip/目录 svn://new_ip/目录

windows下SVN版本库迁移小结

SVN需求:搬迁至异地上云环境,迁移过程将影响用户的时间减少至最小. SVN常见的几种迁移方案: 第一种:整个SVN库目录打包迁移,原库大小17G,打包加迁移时间预估时间约5小时以上,中断不符合要求. 第二种:svnadmin 自带的dump导出load导入方式迁移 :所有版本导出大小超过了磁盘剩余空间(不小于40G),中断不符合要求. 第三种:通过svnsync钩子脚本同步方式进行第一次全量同步,迁移时增量同步(预计最快时间十分钟左右). 利用svnsync同步过程: 1. 原SVN服务器与目

xtrabackup备份工具两种命令单库增量备份还原

Innobackupex 参数解释: --defaults-file=[MY.CNF]该选项传递给xtrabackup子进程,从指定文件读取缺省选项 --apply-log 从备份恢复. --redo-only 该选项强制跳过rollback阶段,只进行redo.这是有必要使用的,如果备份后,要使用增量改变的. --copy-back 从备份目录拷贝数据和索引文件到datadir目录 --remote-host=HOSTNAME备份到远程主机上,使用ssh --stream=[tar|cpio(