当前位置: 移动技术网 > IT编程>开发语言>Java > 如何彻底删除SVN中的文件和文件夹(附恢复方法)

如何彻底删除SVN中的文件和文件夹(附恢复方法)

2019年07月22日  | 移动技术网IT编程  | 我要评论

小伙火海救人获赞,王琳娜老公,天天向上0404

这里假设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出来
使用svndumpfilter过滤掉要删除的文件
新建一个svn库
再将处理好的文件load到新的svn库里
具体命令为:
>svnadmin dump e:/svn/project > aaa.dump
>type aaa.dump | svndumpfilter exclude /software/tags/test.exe > bbb.dump
>svnadmin create e:/svn/project_new
>svnadmin load e:/svn/project_new < bbb.dump

然后再将新建的project_new 重命名为project,以前的project可以移走,或是另取一个名称.(因为在trac中使用的svn目录是project,用户所使用的svn目录也是project)

此方法在svn库里版本不多的情况下完全可以达到彻底删除svn版本库某一文件夹或文件的效果,但是如果svn库里的版本过多,在dump版本的时候会因存储空间不足,而无法dump版本.也就无法操作了.这时须另挂能满足其存储空间的硬盘操作. 

svn如何恢复已删除文件或文件夹

用tortoisesvn:
1.在本地working copy中,用tortoisesvn->show log查看版本库的历史记录。可以用search。
2.找到删除该文件或者文件夹的版本,在log message里右键revert the changes from this revision。
3.该文件或文件夹就被恢复到本地的working copy中了。如果是误删除的,commit到repository里就行了。

用eclipse的subclipse插件:
1.用team->show svn repository history查看版本库的历史记录。
2. 找到删除该文件或者文件夹的版本,右键revert to xx version.
3.该文件或文件夹就被恢复到本地的working copy中了。如果是误删除的,commit到repository里就行了。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网