当前位置: 代码迷 >> CVS/SVN >> 怎么快速去掉.svn文件夹
  详细解决方案

怎么快速去掉.svn文件夹

热度:4995   发布时间:2013-02-26 00:00:00.0
如何快速去掉.svn文件夹?

我们在工程的协作开发过程中,常用的是 svn , 有时我们需要一个干净的 网站版本,没有 .svn 这些文件夹记录的版本传到服务器上使用,自己一个个去文件删除的话也太累了,这时我们就用到以下功能,用cmd 批处理一键删除这些文件夹

可以写到注册表里,以后自己想清理哪个文件夹就直接 右键 -> 清除 .SVN文件夹 就可以了

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\清除SVN信息] @="清除 .SVN文件夹"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\清除SVN信息\command]
@="cmd.exe /c \"TITLE 清除 %1 中的.SVN文件夹 && FOR /r \"%1\" %%f IN (.svn) DO RD /s /q \"%%f\" \""

?

将以上代码保存为 cleanSVN.reg ,在 Windows 环境下运行,然后在你要清理的文件夹上右键,就可以看到命令菜单,

不足的是这里没有 一个确认的提示信息,如果你有兴趣就加上一个提示信息吧,以免误清理,有时间我再加上吧,这些天一直在忙....


注:

如果你得到的菜单是乱码,那可能是你保存的 reg 文件是 UTF-8 的,重新保存为 ANSI 的再执行一次就可以了

?

---------------------------------------------------------------

2011-12-06 注:

最近发现 tortoise 的1.7 版的 .svn 都去掉了,只保留最上层有这个文件夹来记录文件信息!这样的话,以上步骤就用不到了?

?

?

?

?

?

?

使用svn进行版本控制,每个文件夹下都有.svn文件夹,有些项目在脱离svn版本控制之后,想删除项目中所有的.svn文件夹,可用下面的方法进行快速删除:

在桌面上建立一个文本文件,取名为kill-svn-folders.reg(扩展名由txt改为reg),文件的内容如下:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN]
@=”Delete SVN Folders”

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command]
@=”cmd.exe /c \”TITLE Removing SVN Folders in %1 && COLOR 9A && FOR /r \”%1\” %%f IN (.svn) DO RD /s /q \”%%f\” \""

保存之后,双击这个reg文件。成功后,在每一个文件夹上点击右键都会有一个“Delete SVN Folders”的选项,点击之后,既可以删除这个文件下(包括子文件夹)所有的.svn文件夹。

删除完成后,为了避免误操作,不小心把正处于版本管理中的.svn文件夹删除,最好把刚才的注册信息删除。删除方法是,打开注册表(在运行中用 regedit命令),找到[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell \DeleteSVN] ,把DeleteSVN这个项删除,即可。

eclipse编译去除svn文件夹

使用Eclipse编译文件后,classes文件中总是有.svn的文件夹,这些文件没有什么用,而且影响build的速度
“Project->Properties->Java Build Path”,右侧的面板中的”Source”选项卡,在Excluded中加入”**/.svn/**”,就可以将所有的svn文件排除在编译路径中了。

?

?

?

=====================================================================================

?

第一步:建立一个名字叫做remove-svn-folders.reg的文本(先建立txt文件,然后粘贴内容后再修改文件名字),记得后缀要叫.reg。文本的内容为:

?

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN] @="Delete SVN Folders"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command] @="cmd.exe /c \"TITLE Removing SVN Folders in %1 && COLOR 9A && FOR /r \"%1\" %%f IN (.svn) DO RD /s /q \"%%f\" \""

?

????? 第二步:保存后,双击这个文件,此时再右键任何文件夹时都会出现一个“Delete SVN Folders”,点击这项,将会把此文件夹下包括子文件夹的.svn都给删除。如果项目想去掉svn,直接对此项目进行上面操作,一下子就将项目所有的.svn删除,即项目去除了svn。

????? 第三步:也比较重要哦!如果项目已经去掉了svn,此时我们应该将右键的这项功能去掉预防以后不小心点击将不想去svn的项目去除了,这将会非常令人蛋疼。去除右键这项功能的方法为:打开注册表(就是在命令行输入:regedit命令),然后在注册表里找到:[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN],将DeleteSVN删除就可以了。

现在再对你的文件夹进行右键是不是找不到“Delete SVN Folders”这个选项了?!

?

?

=====================================================================================

?

?

?

@echo off

:start
::启动过程,切换目录
set pwd=?%
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

?

?

?

?

原理如下:每个check out的文件夹下都有个隐藏的.svn文件夹,该文件夹是存储svn信息的,把隐藏的这个文件夹显示出来并删掉,即消除了SVN标记了。

  相关解决方案