如何彻底删除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里就行了。

(0)

相关推荐

  • Windows下VisualSVN Server的安装与配置方法(图文)

    VisualSVN Server是免费的,而VisualSVN是收费的.VisualSVN是SVN的客户端,和Visual Studio集成在一起, VisualSvn Server是SVN的服务器端,包括Subversion.Apache和用户及权限管理 为什么在Windows下用VisualSVN Server而不用Subversion 因为如果直接使用Subversion,那么在Windows 系统上,要想让它随系统启动,就要封装SVN Server为windws service,还要通过

  • 使用svn进行版本控制

    我使用系统是: Microsoft Windows xp sp2 第一:下载软件 有两个软件需要下载的:Subversion和TortoiseSVNSubversion 下载地址:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91TortoiseSVN下载地址:http://tortoisesvn.net/downloads (有些文档说必备软件还有Apache,但这么说法的大多是较旧的文档这么提到,随着软件

  • SVN出现提示org.apache.subversion.javahl.ClientException: Attempted to lock an already-locked dir解决方案

    SVN出现提示org.apache.subversion.javahl.ClientException: Attempted to lock an already-locked dir解决方案 第一种方法: 通过svn插件来清理,首先选中项目,右键,选择team->refresh/cleanup即可.然后再更新文件就不会提示org.apache.subversion.javahl.ClientException: Attempted to lock an already-lockeddir了.但

  • 解决常见的Eclipse SVN插件报错方法详解

    在学习SVN的过程中,你经常会遇到SVN插件问题,本文介绍一下在安装SVN插件时常见Eclipse SVN插件报错信息问题,希望本文介绍对你的学习有所帮助. AD: 本节和大家一起看一下SVN插件在安装过程中遇到的常见Eclipse SVN插件报错信息,和大家一起分享一下,希望通过本节的介绍大家知道当出现SVN插件报错时该如何处理. 常见Eclipse SVN插件报错信息: 1.update-rHEADD:/dev/workforceWorkingcopynotlocked;thisisprob

  • 清除svn文件的bat脚本整理

    第一个:比较直接的代码,循环删除当前目录及子目录下所有的SVN文件 复制代码 代码如下: @echo on color 2f mode con: cols=80 lines=25 @REM @echo 正在清理SVN文件,请稍候...... @rem 循环删除当前目录及子目录下所有的SVN文件 @rem for /r . %%a in (.) do @if exist "%%a\.svn" @echo "%%a\.svn" @for /r . %%a in (.)

  • 删除SVN三种方法delSvn(windows+linux)

    一.在linux下 删除这些目录是很简单的,命令如下 find . -type d -name ".svn"|xargs rm -rf 或者 find . -type d -iname ".svn" -exec rm -rf {} \; 二.在windows下用以下法子: 1.在项目平级的目录,执行dos命令: xcopy project_dir project_dir_1 /s /i 2.或者在项目根目录执行以下dos命令 for /r . %%a in (.)

  • svn服务器启动和svn服务器重启、停止等操作脚本分享

    复制代码 代码如下: #!/bin/bashcase "$1" instart)        svnserve -d -r /svndata        svnport=`netstat -natp | grep svnserve | awk -F: '{print $4}' | awk 'NR==1'`        if [ $svnport -eq 3690 ]        then                echo "SVN Server Already

  • Windows下SVN服务器搭建方法整理(apache)

    本节和大家谈谈Windows下SVN服务器搭建问题,在这里拿出来和大家分享一下,希望对大家有用. 1,软件下载 Windows下SVN服务器搭建,下载Subversion服务器程序.到官方网站的下载二进制安装文件,来到二进制包下载部分,找到WindowsNT,2000,XPand2003部分,然后选择"thisdirectory",这样我们可以看到许多下载的内容,目前可以下载svn-1.4.0-setup.exe.下载Subversion的Windows客户端TortoiseSVN.T

  • WINDOWS下搭建SVN服务器端的步骤分享(Subversion)

    1.获取svn程序 2.安装 Subversion(以下简称SVN)的服务器端和客户端.下载下来的服务器端是个 zip压缩包,直接解压缩即可,比如我解压到 E:\subversion .客户端安装文件是个 exe 可执行文件,直接运行按提示安装即可,客户端安装完成后提示重启. 3.先建立空目录 E:\svn\repos1 ,注意一定是要空的.然后在 repos1 文件夹上"右键->TortoiseSVN->Create Repository here...",然后可以选择版

  • 如何彻底删除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_

  • 删除xcode 中过期的描述性文件方法

    1.使用终端 首先 打开终端 cd ~/Library/MobileDevice/Provisioning\ Profiles/ 再删除所有 rm *.mobileprovision 2.直接找到文件夹-简单粗暴 首先show in finder,接着 Com+Shi+G ,再 ~/Library/MobileDevice/Provisioning Profiles 最后找到对应的删除 yangdeMacBook-Pro:Provisioning Profiles yangliugrep"dev

  • 如何批量删除Docker中已经停止的容器的几种方法

    目录 方法一: 方法二: 方法三: 方法四: 附图: 方法一: #显示所有的容器,过滤出Exited状态的容器,取出这些容器的ID, sudo docker ps -a|grep Exited|awk '{print $1}' #查询所有的容器,过滤出Exited状态的容器,列出容器ID,删除这些容器 sudo docker rm `docker ps -a|grep Exited|awk '{print $1}'` 方法二: #删除所有未运行的容器(已经运行的删除不了,未运行的就一起被删除了)

  • maven项目在svn中的上传与检出的方法

    前言 企业开发中经常使用svn来为我们控制代码版本,也经常使用maven来管理项目.下面将介绍一下如何将maven项目上传到svn中,如何将项目从svn中检出. 上传到svn maven项目上传与普通项目上传并无区别.这里做一下简单介绍: 右击项目:选择Team:选择Share Project: 仓库类型选择svn 点击next 选择你要分享的资源库.点击next 选择使用指定的模块名.然后在浏览中选择要上传的位置.然后点击finish. 点击finish后进入同步视图界面.这个界面需要我们选择

  • C#程序中创建、复制、移动、删除文件或文件夹的示例

    创建文件或文件夹 您可通过编程方式在您的计算机上创建文件夹.子文件夹和子文件夹中的文件,并将数据写入文件. public class CreateFileOrFolder { static void Main() { string folderName = @"c:\Top-Level Folder"; string pathString = System.IO.Path.Combine(folderName, "SubFolder"); string pathSt

  • linux 不删除文件,清空文件中内容的命令

    在某些时候,需要清空文件内容,而不删除文件.比喻有些日志文件(log.txt):在linux下的命令为:true >log.txt 测试结果: touch log.txt →#新建文件log.txt vi log.txt →#编辑文件 随便输入什么东西 :wq!回车 →#保存退出: cat log.txt →#查看 文件内容: true >log.txt →#查看文件里面的内容: 附: rm -r 删除目录,不管目录中有没有文件 rm -rf 强制删除,没有提示 一般用到的就这两个,删除文件可

  • Git如何删除历史记录中的大文件详解

    前言 Git 作为一个分布式的版本管理工具,代码仓库中是会保存所有历史记录的.虽然,Git 的 .gitignore 文件里可以定义一些忽略文件的规则,但是,在我们提交代码的过程中,总会不小心误提一些没用的文件,如果文件中存在大文件,就会导致:就算我们把它删了重新提交,.git 文件夹依然会占用较大的空间. 如何解决这个问题呢?其实,Git 已经为我们提供了解决方案,就是被称为核弹级的命令 filter-branch.这个命令可以用来修改历史提交记录,把不需要的文件永久地从历史记录中删除. 方法

  • 如何优雅地删除 Linux 中的垃圾文件的方法

    不知道大家是否也跟我一样,是一只要把的自己电脑文件安排的条理有序,把没用的文件会及时删掉的程序猿呢?如果是的话,那么我们可以愉快地探讨下文章的内容.如果不是的话,你也可以留下来凑凑热闹嘛(>-<). 下面要介绍的是今天的主角-- tmpwatch ,它能帮助我们递归删除在给定时间内没有访问的文件和空目录. 当然,我们也可以使用 find 命令查找并删除超过 x 天未访问的文件,不过 tmpwatch 可以一步到位,何乐而不为? tmpwatch 默认根据文件或目录的访问时间(access ti

  • python 删除系统中的文件(按时间,大小,扩展名)

    按时间删除文件 # importing the required modules import os import shutil import time # main function def main(): # initializing the count deleted_folders_count = 0 deleted_files_count = 0 # specify the path path = "/PATH_TO_DELETE" # specify the days da

  • 利用Python删除电脑中重复文件的方法

    目录 前言 练习 代码演示 总结 前言 在生活中,我们经常会遇到电脑中文件重复的情况.在文件较少的情况下,这类情况还比较容易处理,最不济就是一个个手动对比删除:而在重复文件很多的时候,我们很难保证把重复文件全部删完.下面文章就来简单介绍便捷一个小方法,用Python来删除重复文件 练习 Python提供一个内置电脑文件管理库os模块,我们可以利用它来删除多余文件. 当一个文档里存在重复文件名,我们的系统会自动给我们重复的文件名更名, 比如下图的文件“1”重复了3次:  那我们该怎么删除文件“1”

随机推荐