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

 更新时间:2014年08月28日 12:21:15   投稿:mdxy-dxy  
在SVN中如果删除某个文件或文件夹也可以在历史记录中进行找回,有的时候需要彻底删除某些文件,即不希望通过历史记录进行恢复,需要在服务器上对SVN的数据进行重新整理

这里假设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里就行了。

相关文章

  • 定时任务@Scheduled用法及其参数使用

    定时任务@Scheduled用法及其参数使用

    这篇文章主要介绍了定时任务@Scheduled用法及其参数使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • JavaWeb实现邮件发送功能

    JavaWeb实现邮件发送功能

    这篇文章主要为大家详细介绍了JavaWeb实现邮件发送功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12
  • 利用 filter 机制给静态资源 url 加上时间戳,来防止js和css文件的缓存问题

    利用 filter 机制给静态资源 url 加上时间戳,来防止js和css文件的缓存问题

    这篇文章主要介绍了利用 filter 机制给静态资源 url 加上时间戳,来防止js和css文件的缓存问题的相关资料,需要的朋友可以参考下
    2016-05-05
  • 解决springboot环境切换失效的问题

    解决springboot环境切换失效的问题

    这篇文章主要介绍了解决springboot环境切换失效的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • Java二叉树查询原理深入分析讲解

    Java二叉树查询原理深入分析讲解

    这篇文章主要介绍了Java二叉树查询原理,二叉查找树,又称二叉排序树,亦称二叉搜索树,是数据结构中的一类。在一般情况下,查找效率比链表结构要高
    2022-11-11
  • 使用迭代器模式来进行Java的设计模式编程

    使用迭代器模式来进行Java的设计模式编程

    这篇文章主要介绍了使用迭代器模式来进行Java的设计模式编程,文中对迭代器模式中的容器封装方面的知识进行了讲解,需要的朋友可以参考下
    2016-02-02
  • Java利用策略模式优化过多if else代码

    Java利用策略模式优化过多if else代码

    这篇文章主要介绍了Java利用策略模式优化过多if else代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Spring多线程的使用以及问题详解

    Spring多线程的使用以及问题详解

    在我们开发系统过程中,经常会处理一些费时间的任务(如:向数据库中插入大量数据),这个时候就就需要使用多线程,下面这篇文章主要给大家介绍了关于Spring多线程的使用以及问题的相关资料,需要的朋友可以参考下
    2022-05-05
  • IDEA打包普通web项目操作

    IDEA打包普通web项目操作

    这篇文章主要介绍了IDEA打包普通web项目操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • 详解Spring中Bean后置处理器(BeanPostProcessor)的使用

    详解Spring中Bean后置处理器(BeanPostProcessor)的使用

    BeanPostProcessor 接口也被称为Bean后置处理器,通过该接口可以自定义调用初始化前后执行的操作方法。本文将详细讲讲它的使用,需要的可以参考一下
    2022-06-06

最新评论