代码如下(把以下代码复制,保存为.bat格式文件,然后放在需要删除的根目录下执行即可):
@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 (.) do @if exist "%%a\.svn" rd /s /q "%%a\.svn"
@echo 清理完毕!!!
@pause
这里假设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库路径为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里就行了。
先把文件都导出来(export),做个备份。然后更新一下本地的SVN版本,接下来开始删除这个无用
的文件夹:
右键菜单,小乌龟里面有个红色的“X”,OK,就是这个了,点一下。然后你会发现这个无用文件夹变了:
再打开这个文件夹,发现里面的文件都没了,只剩下文件夹这些“空壳”了。接下来,最后一步了:提交(commit)你的SVN,这时,你会发现:
看到了吧:Text
status(文件状态)是deleted(已经被删了),点击OK,大功告成!不信,就在更新(update)一下你的SVN看看了!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)