zoukankan      html  css  js  c++  java
  • 如何彻底删除SVN中的文件和文件夹(附恢复方法)

    在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里就行了。

  • 相关阅读:
    博客链接--竹子
    升级sudo至1.9.5p2,修复sudo漏洞
    使用Jenkins自动打包部署前端
    升级sudo至1.9.5p2,修复sudo漏洞
    60行C代码实现一个shell
    copy_{to, from}_user()的思考
    Code Server 是什么?
    Linux常用命令学习(5)
    Linux sudo权限提升漏洞(CVE-2021-3156)
    厚书读薄丨《Vim实用技巧》第一部分 模式
  • 原文地址:https://www.cnblogs.com/exmyth/p/4932435.html
Copyright © 2011-2022 走看看