现在的位置: 首页 > 综合 > 正文

SVN早期版本库历史的删除

2013年11月06日 ⁄ 综合 ⁄ 共 1340字 ⁄ 字号 评论关闭

  最近我的机器磁盘空间发现严重不足,找来找去,只找到可以拿SVN版本库开刀。我主要使用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.备份版本库

(很重要,我在尝试过程中出现过失败,幸亏有备份,不然就over了)

        把D盘的版本库,备份到C盘,同时清除历史日志,输入命令:svnadmin hotcopy --clean-logs d:/SVNRepository c:/SVNRepository

,这样备份后版本库从3.34G变为3.24G。

 

      3.dump需要保留的版本

        我最初选择保留700-755的版本,但是在这一步运行过程中出现这样一段话:
              * 已转存版本 739。

              * 已转存版本 740。

              警告: 版本 535 的参考数据比最旧的转存数据版本 (700)还旧。

              警告: 装载这个转存到空的版本库会失败。

              * 已转存版本 741。

        我没有太在意,结果从dump恢复版本库时出现错误,屏幕显示:svnadmin: 当前版本库不存在相对源版本 -164,并终止运行。导致我使用备份库进行dump。

        跳过这段,直接说正确的方法。输入:svnadmin dump c:/SVNRepository -r 745:755 > d:/repo_dump_745_755.dmp

,3.24G的版本库dump出来后变成760M,苗条不少。

 

      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的空间!

抱歉!评论已关闭.