如何快速去掉.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標記了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章