彻底删除SVN版本库某一文件夹或文件

基础描述

要彻底删除SVN版本库某一文件夹或文件,可采取这种方法(举例说明):
例:假设SVN库路径为E:/svn/project,库中的目录结构为

Trunk
Software/test.exe

删除Software/目录下的test.exe文件
操作步骤为:
1、 把SVN库dump出来
2、 使用svndumpfilter过滤掉要删除的文件
3、 新建一个SVN库
4、 再将处理好的文件load到新的SVN库里
具体命令为:

svnadmin dump E:/svn/project > aaa.dump
cat aaa.dump | svndumpfilter exclude /Software/test.exe > bbb.dump
svnadmin create E:/svn/project_new 
svnadmin load E:/svn/project_new < bbb.dump

然后再将新建的project_new 重命名为project,以前的project可以移走,或是另取一个名称.
此方法在SVN库里版本不多的情况下完全可以达到彻底删除SVN版本库某一文件夹或文件的效果,但是如果SVN库里的版本过多,在dump版本的时候会因存储空间不足,而无法dump版本.也就无法操作了.这时须另挂能满足其存储空间的硬盘操作.

总结

  1. svnadmin create是新建svn仓库;
  2. svnadmin dump是依据当前svn仓库做的备份;备份里包含所有文件和版本历史追溯信息。dump后的文件大小预计跟仓库容量大小是一致的。
  3. svndumpfilter是依据并编辑仓库备份,使得对svn仓库做筛选过滤;
  4. svnadmin load是依据备份,产生新的svn仓库。
  5. svnadmin或者svndumpfilter,都是针对仓库文件所在目录操作。而非svn的仓库地址svn://192.168.1.101/project而言。
发布了191 篇原创文章 · 获赞 174 · 访问量 85万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章