这里假设SVN项目的目录为 /data/svn/project,我们想排除trunk/test.exe文件和trunk/notallowed/目录,操作步骤如下及执行的svn命令(在svn安装目录的bin目录下)如下:
# 首先将svn库整个导出
svnadmin dump /data/svn/project > project_original.dump
# 然后将project_original.dump文件里面不需要的文件进行排除并生成一个新的dump文件
type project_original.dump | svndumpfilter exclude trunk/test.exe trunk/notallowed > project_new.dump
# 接下来创建一个新的svn项目并将上面的dump文件导入到一个新的项目中
svnadmin create /data/svn/project_new
svnadmin load /data/svn/project_new < project_new.dump
最后将原来的project目录删除并将project_new修改成project即可。需要注意的是dump命令会将svn项目中的所有修改和历史记录都导出来,这样导出的dump文件会很大,而且导入的时间也比较长。
从服务器端彻底删除SVN版本库中部分文件夹或文件
若要彻底删除SVN版本库某一文件夹或文件,可采取这种方法(举例说明):
例:假设SVN库路径为E:/svn/project,库中的目录结构为
QA/Trunk
Software/Tags/test.exe
删除Software/Tags/目录下的test.exe文件
操作步骤为:
把SVN库dump出来
使用svndumpf