目前主流的版本管理软件为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仓库瘦身。