一、先把原有的带.svn控制的工程备份一份,然后再拷贝一份到另一个目录,比如:K:\chinasofti\XXX项目
二、建一个txt文件夹 把下面的 代码拷过去,把格式改成 .bat
FOR /r K:\chinasofti\XXX项目 %%a IN (.svn) DO rmdir /s/q %%a
三、双击 这个 .bat格式的文件。这样就可以把所有的 .svn去掉了。
第二种方法如下:
添加注册表(亲自动手测试过)
可以将“快速删除SVN版本信息”命名增加到资源管理器的右键上,这样,鼠标点两下就能把选中目录下的所有.svn目录干掉了。
代码为:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN]
@="快速删除SVN版本信息"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command]
@="cmd.exe /c D:\工具\批处理文件删除SVN版本信息.bat"
将这段代码保存为一个.reg文件,双击确认导入注册表中不完整,后来自己手工添加。注意:文件“批处理文件删除SVN版本信息.bat”不能放 在有空格的文件夹下,确认删除时请看一下当前目录不要删除不该删的目录下的SVN版本信息。不知道怎么改进“cmd.exe /c D:\工具\批处理文件删除SVN版本信息.bat”。
批处理文件删除SVN版本信息.bat文件内容如下:
@echo off
echo ***********************************************************
echo 清除SVN版本信 息
echo ***********************************************************
:start
::启动过程,切换目录
:set pwd=%cd%
:cd %1
echo 工作目录是:& chdir
:input
::获取输入,根据输入进行处理
set source=:
set /p source=确定要清楚当前目录下的.svn信息吗?[Y/N/Q]
set "source=%source:"=%"
if "%source%"=="y" goto clean
if "%source%"=="Y" goto clean
if "%source%"=="n" goto noclean
if "%source%"=="N" goto noclean
if "%source%"=="q" goto end
if "%source%"=="Q" goto end
goto input
:clean
::主处理过程,执行清理工作
@echo on
@for /d /r %%c in (.svn) do @if exist %%c ( rd /s /q %%c & echo 删除目录%%c)
@echo off
echo "当前目录下的svn信息已清除"
goto end
:noclean
::分支过程,取消清理工作
echo "svn信息清楚操作已取消"
goto end
:end
::退出程序
cd "%pwd%"
pause
注:最后一种方法,如果出现错误,就打开注册表,找到对应的项,吧“cmd.exe /c D:\工具\批处理文件删除SVN版本信息.bat “直接写入注册表中即可使用
我只用了最后一种方法:
报文件没有关联错误,找到这个注册表项:[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command]
写入:“cmd.exe /c D:\工具\批处理文件删除SVN版本信息.bat “,注意路径
还有一个要注意的:在使用的时候,不要在要清除的文件夹上右击,在要清除的文件夹里面的子文件夹上右击--》快速删除svn版本信息