本节和大家一起来学习一下删除SVN版本信息的方法,本节介绍两种方案,和大家分享一下,欢迎大家一起来学习如何删除SVN版本信息。下面是具体介绍。
一、删除SVN、CVS等版本控制信息(ZZ)
1、找出所有的svn文件:find-typed-name"_svn"
2、那么如何删除SVN呢?有两种方案:
1)、find.-typed-name"_svn"|xargsrm-rf
2)、find.-typed-iname"_svn"-execrm-rf{}\;
如果find结果文件太多-exec怎么办?
使用find命令的-exec选项处理匹配到的文件时,find命令将所有匹配到的文件一起传递给exec执行。不幸的是,有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出现溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。这就是xargs命令的用处所在,特别是与find命令一起使用。Find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。在有些系统中,使用-exec选项会为处理每一个匹配到的文件而发起一个相应的进程,并非将匹配到的文件全部作为参数一次执行;这样在有些情况下就会出现进程过多,系统性能下降的问题,因而效率不高;而使用xargs命令则只有一个进程。另外,在使用xargs命令时,究竟是一次获取所有的参数,还是分批取得参数,以及每一次获取参数的数目都会根据该命令的选项及系统内核中相应的可调参数来确定。
看看xargs命令是如何同find命令一起使用的,以下是一些例子。
下面的例子在整个系统中查找内存信息转储文件(coredump),然后把结果保存到/tmp/core.log文件中:
$find.-name"core"-print|xargsecho"">/tmp/core.log
下面的例子在/apps/audit目录下查找所有用户具有读、写和执行权限的文件,并收回相应的写权限:
$find/apps/audit-perm-7-print|xargschmodo-w
在下面的例子中,我们用grep命令在所有的普通文件中搜索device这个词:$find/-typef-print|xargsgrep"device"
二、在windows下删除SVN用以下法子:
1、在项目平级的目录,执行dos命令:
xcopyproject_dirproject_dir_1/s/i
2、或者在项目根目录执行以下dos命令
for/r.%%ain(.)do@ifexist"%%a\.svn"rd/s/q"%%a\.svn"
其实第二种方法可以用来干很多事的,比如把代码中的.svn替换为任意其他文件名并在硬盘根目录下执行,就可以从硬盘上删除所有的这个文件啦。
3、加注册表
JonGalloway提供了一段注册表代码,可以将”DeleteSVNFolders”命名增加到资源管理器的右键上,这样,鼠标点两下就能把选中目录下的所有.svn目录干掉了。Worksjustgreat!
代码为:
WindowsRegistryEditorVersion5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN]@=”DeleteSVNFolders“[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command]@=”cmd.exe/c\”TITLERemovingSVNFoldersin%1&&COLOR9A&&FOR/r\”%1\”%%fIN(.svn)DORD/s/q\”%%f\”\”“将这段代码保存为一个.reg文件,双击确认导入注册表即可。如果为CVS,则将SVN改成CVS即可。请期待下节关于删除SVN版本信息的介绍。
【编辑推荐】