清除SVN版本库中特定文件的方法

  团队共同维护一个SVN版本库时,有时会不知不觉地将一些无用的文件提交到版本库中,如果这些无用的“垃圾”文件是很大的二进制文件时,SVN版本库的大小将会迅速膨胀,给版本库备份带来麻烦。为此,偶通过搜索找到了一种清理版本库的方法,要用到Subversion的命令,如下:

  假定,偶已经在”E:\Repositories\”目录建立了一个名为mydata的版本库,想清除库中的无用文件位置为“/documents/计算书.doc”。

(1)先用”dump”命令将整个版本库输出成标准格式。

svnadmin dump E:\Repositories\mydata > E:\temp\mydata.dump

(2)然后,用以下命令对输出的标准格式进行过滤处理,并生成新的文件。

type E:\temp\mydata.dump | svndumpfilter exclude /documents/计算书.doc > E:\temp\mydata_new.dump

(3)新创建一个空的库,并将新生成的文件导入到空库中。

svnadmin create E:\Repositories\mydata_new
svnadmin load E:\Repositories\mydata_new < E:\temp\mydata_new.dump

  这样就大功告成了,现在查看一下新的库”mydata_new”的日志记录,你会发现这“计算书.doc”相关的日志内容还存在,版本信息和版本号均没有丟失,只是你不能从库中提取出“计算书.doc”了。当然,新库的大小也较旧库有所减小,这个缩减的量会因“计算书.doc”的大小不同而不同,偶从库中清除了两个60M的文件后,库的大小缩小了25M左右,还是比较明显的。

注:要运行使用SVN命令对版本库进行操作,需要安装Subversion,推荐使用SlikSVNVisualSVN

参考文章:http://www.svn8.com/SVNSY/20080618/816.html