地狱门神

在某些时候,我们可能需要一个存放二进制文件的SVN库,用来保存每日构建的结果等。
但是这种库会趋于越来越大,最后会占用很多磁盘空间。
这时我们会想到能不能删掉某个版本之前的所有版本,以节省磁盘空间。
下面就提供一种方法来进行这件事情。
注意:请保留必要的备份文件,防止数据丢失。

导出需要保留的版本
svnadmin dump /path/to/repo -r620:626 > svn.dump

重命名原来的文件夹
ren /path/to/repo /path/to/backup

创建新的repository
svnadmin create /path/to/repo

增加删除掉的版本的padding
创建一个empty.dump,里面包含
<开始>
SVN-fs-dump-format-version: 2

UUID: cce1d6fe-0973-8447-91ba-a4919c819c6b

Revision-number: 1
Prop-content-length: 124
Content-length: 124

K 10
svn:author
V 12
dailybuilder
K 8
svn:date
V 27
2014-06-05T00:00:00.000000Z
K 7
svn:log
V 16
Padding revision
PROPS-END

<结束>,注意PROPS-END后面有一个换行符。
empty.dump中全部采用UNIX换行(\n)。
运行
for /L %a in (1,1,619) do (
svnadmin load /path/to/repo < empty.dump
)

导入保留的版本
svnadmin load /path/to/repo < svn.dump

参考
http://superuser.com/questions/258558/how-can-i-remove-data-from-local-svn-repository
http://www.timj.co.uk/2011/09/generating-emptypadding-revisions-in-an-svn-dump/

最新文章

  1. mui jquery 同时使用
  2. WPF的路由事件、冒泡事件、隧道事件(预览事件)
  3. cookie 和session 的区别:
  4. AxureRP7.0各类交互效果汇总帖(转)
  5. win10 mac地址修改器
  6. java nio知识点总结
  7. Wince 设备环境和画笔应用
  8. iOS中touches事件,addtarget ...action和GestureRecognizer详解
  9. jquery 动态增加的html元素,初始化设置在id或class上的事件无效
  10. .NET基础——数组
  11. 使用travis-ci自动部署github上的项目
  12. 让你成功安装vscode中go的相关插件
  13. Python 官方文档&amp;教程
  14. string函数的一些实现
  15. Hibernate的继承映射
  16. Java内存模型及Java关键字 volatile的作用和使用说明
  17. thinkphp中setInc、setDec方法
  18. VC++进行窗口枚举
  19. eclipse查看源码
  20. 无线路由器wan口和lan口ip同网段导致无法上网解决办法

热门文章

  1. Oracle 11.2.0.1的一个Bug,客户端报ORA-03113: 通信通道的文件结尾
  2. -Three.js开发指南---用three.js创建你的第一个三维场景(第一章)
  3. Verilog HDL那些事_建模篇笔记(实验八:键盘解码)
  4. Java在Web项目中读取properties文件
  5. [Nginx] - PHP+FPM相关的配置
  6. Windows 10 LTSB
  7. 如何使用一个对象而非数组元素为ng-options初始化
  8. C语言中,定义的含义?声明的含义?它们之间的区别是什么?
  9. Interview
  10. 由system.currentTimeMillis() 获得当前的时间