Svn清理方法

题注:

 

部门svn版本库自打使用就没清理过,随着 svn 版本库体积的逐步增大 ,每次备份所需的时间和介质数量都在增大,而且部门 svn 服务器空间有限。因此,有必要对 svn 服务器进行定期清理。今天把svn的文档认真的研究了一下,整理出svn版本库清理的方法,特放到网上,供有类似需求的同志们参考。

 

 

Svn 清理方法


经过研究分析,比较可行的 Svn 库的清理方法有两种:

1 dump 方法 ( 推荐 )

使用 svn dump 命令,将整个 svn 库备份出来,再使用 svnfilter 命令进行剔除不需要保留的项目( exclude )操作或进行仅包含需要保留项目( include )操作形成新的 dump 文件,然后新建一个 svn 库,将新 dump 文件导入新库中,最后删除旧库,把新库更名为旧库的名字。

这种方法的优点是新库中项目的版本修订历史得以保留,比较方便回溯;缺点是操作起来比较费时。

操作命令:

使用 ssh 客户端登录到 svn 服务器:

1)  执行 svnadmin dump /path/to/repo >dumpfile ,备份 project 库;

2)  执行 svnadmin create newrepo ,创建新库 newrepo

3)  执行 svndumpfilter include proj1 <dumpfile >proj1-dumpfile

4)  执行 svnadmin load newrepo < proj1-dumpfile

5)      删除旧库 project ,将新库更名为 project

 

2 export/import 方法

使用 export 命令,将 svn 库中需要保留的项目的最新版本导出,再新建一个 svn 库,导入上一步中导出的项目文件到新库中,最后删除旧库,把新库更名为旧库的名字。

这种方法的优点是操作简单,实施较快,缺点是导入到新库的项目不包含版本修订历史,无法回溯。

操作命令:

1)      在本地 pc 机( windows 系统)上,新建一个空目录(假定为 d:/svn );

2)      在此目录下单击鼠标右键,选择 tortoise svn 菜单中的 export 菜单项,导出需要保留的项目;

3)      使用 ssh 客户端登录到 svn 服务器,执行 svnadmin create project2 ,创建新库 project2

4)      在此目录下单击鼠标右键,选择 tortoise svn 菜单中的 import 菜单项,导入本地目录下的项目到 project2 库中;

使用 ssh 客户端登录到 svn 服务器,删除旧库 project ,将新库更名为 project

 

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭