欧阳简之 > SVN瘦身,清除历史版本记录

热爱代码,对每一行代码保持一颗敬畏之心。

目前主流的版本管理软件为git或svn,虽说现在使用git作为版本管理软件越来越多,但svn依旧仍有大量公司使用,svn使用中会发现,随着版本记录越来越多,svn库也越来越大,这时候进行svn检出、查询或者提交都会变慢,这个时候,我们可以删除部分无效的历史版本记录,进行瘦身,减少磁盘占用及提高响应。

以下将介绍为svn库瘦身的办法,简单的说,就是将原版本库选择版本范围进行备份,然后还原到一个新的版本库,具体流程如下:

这里演示原仓库地址为:/data/svn/app

1. 查看当前版本库最新版本号

svnlook youngest /data/svn/app

2. 备份版本库

备份版本库,同时清除历史日志(这里可选择是否清除历史日志)

svnadmin hotcopy --clean-logs /data/svn/app/ /data/svn/backup/app

3. dump需要保留的版本

这里,我备份的是2-3的版本。

svnadmin dump /data/svn/backup/app/ -r 2:3 > /data/svn/backup/app.dmp

4. 删除旧版本库

rm -rf /data/svn/app/

5. 创建空的版本库

svnadmin create /data/svn/app

6. 把dump文件还原到新版本库

svnadmin load /data/svn/app/ < /data/svn/backup/app.dmp

会显示正在载入版本库中的文件或正在提交/装载的版本

<<< Started new transaction, based on original revision 2
     * adding path : a.txt ... done.
     * adding path : 2.txt ... done.

------- Committed new rev 1 (loaded from original rev 2) >>>

<<< Started new transaction, based on original revision 3
     * editing path : a.txt ... done.

------- Committed new rev 2 (loaded from original rev 3) >>>

至此,已完成SVN仓库瘦身。

tagged by none