当svn库庞大到一定程度的时候,无论是在查询还是在备份方面肯定会给我们带来很多不便,以下将介绍为svn库瘦身的办法,简单的说,就是新建一个库,然后把旧库我们所需要查询的一个版本范围的资料搬移过去,

SVN历史版本删除(为SVN库瘦身)

2010-12-17 16:44


  当svn库庞大到一定程度的时候,无论是在查询还是在备份方面肯定会给我们带来很多不便,以下将介绍为svn库瘦身的办法,简单的说,就是新建一个库,然后把旧库我们所需要查询的一个版本范围的资料搬移过去,具体操作如下:

软件环境:

Windows XP SP2 32bit
Apache 2.2.14
Subversion 1.6.6
TortoiseSVN 1.6.6.17493
SVN版本库位置:D:\SVNRepository,占地3.34G

   步骤:

  1.准备工作
        停止运行中的Apache。
    打开命令行提示符,输入命令: svnlook youngest d:\SVNRepository ,查看当前最新的版本号,显示最新版本记录为755。

  2.备份版本库 (很重要,以免过程中出现意外而导致数据丢失或者版本库损坏)
        把D盘的版本库,备份到C盘,同时清除历史日志,输入命令:svnadmin hotcopy --clean-logs d:\SVNRepository c:\SVNRepository ,这样备份后版本库从3.34G变为3.24G。 (这里可选择是否清除历史日志)

      3.dump需要保留的版本
        我最初选择保留700-755的版本,输入:svnadmin dump c:\SVNRepository -r 745:755 > d:\repo_dump_745_755.dmp 。

      4.删除就版本库 (这一步是供选择,不删除亦无碍)

        输入命令:rmdir /s/q d:\SVNRepository ,删除旧版本库。也可以直接在资源管理器里删除。

      5.创建空的版本库
        输入命令:svnadmin create d:/SVNRepository ,检查空的版本库大概31.2K大小。

      6.把dump文件导入版本库
        输入命令:svnadmin load d:\SVNRepository < d:\repo_dump_745_755.dmp ,这时屏幕上会显示正在载入版本库中的文件或正在提交/装载的版本。完成后,用命令svnlook youngest d:\SVNRepository 查看,显示当前版本库最新版本号是11,整个版本库大小501M。

      至此,SVN版本库瘦身成功,腾出空间2.7G,大致相当于腾出原SVN库近5/6的空间!


______________________________________
生活,要用圣人的胸怀面对,用科学的方法支配,
        用皇帝的御膳养胃,用清洁的空气洗肺,
          用小猪的感觉去睡,用太阳的热情灌水。
______________________________________