如何彻底删除SVN中的⽂件和⽂件夹(附恢复⽅法)
这⾥假设SVN项⽬的⽬录为 /data/svn/project,我们想排除⽂件和trunk/notallowed/⽬录,操作步骤如下及执⾏的svn命令(在svn安装⽬录的bin⽬录下)如下:
repository文件夹可以删除吗# ⾸先将svn库整个导出
svnadmin dump /data/svn/project > project_original.dump
# 然后将project_original.dump⽂件⾥⾯不需要的⽂件进⾏排除并⽣成⼀个新的dump⽂件
type project_original.dump | svndumpfilter exclude 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/
删除Software/Tags/⽬录下的⽂件
操作步骤为:
把SVN库dump出来
使⽤svndumpfilter过滤掉要删除的⽂件
新建⼀个SVN库
再将处理好的⽂件load到新的SVN库⾥
具体命令为:
>svnadmin dump E:/svn/project > aaa.dump
>type aaa.dump | svndumpfilter exclude /Software/ > 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⾥就⾏了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论