2009-08-19 120 views
32

可能重複:
How do you remove Subversion control for a folder?
Command line to delete matching files and directories recursively從所有目錄中刪除的.svn文件

最近,我將我的CVS倉庫使用cvs2svn到SVN和我最近注意到,每個目錄下有一個隱藏的文件夾稱爲.svn。我當前的構建腳本從版本化的資源目錄中複製了很多目錄,並最終複製了.svn文件。有沒有辦法讓svn在結帳時不包含這些文件,或者是否需要編寫腳本來刪除所有這些.svn文件。有很多這些隱藏的.svn目錄的文件,所以這將是一個痛苦,除非我可以寫一個遞歸腳本來做到這一點,但我不,如果我可以做我的Windows安裝程序。有沒有一種簡單的方法可以阻止svn將這個隱藏的目錄放到我的項目中的任何地方?

+0

哎呀,選錯了一個:http://stackoverflow.com/questions/154853 /如何刪除 - 顛覆 - 控制文件夾 – zzzzBov 2012-11-17 03:06:17

回答

28

你可以做一個叫做SVN導出的事情來獲得這些文件沒有.svn目錄

http://svnbook.red-bean.com/en/1.7/svn.ref.svn.c.export.html

+0

是的,SVN導出將刪除.svn文件。您可以創建一個批處理文件以從命令行運行導出命令,並將其合併到您的構建過程中。 – 2009-08-19 16:52:42

+0

檢查此鏈接,它幫助我.... http://cocoabugs.blogspot.com/2010/09/script-to-remove-hidden-svn-folder.html – 2010-09-20 10:16:24

+2

這是偉大的,但不幸的是有時候有人給你發送一個tarball滿了他們:( – Eva 2012-07-25 10:55:56

4

這些文件夾都需要顛覆與工作副本是如何工作的(即,你所做的結帳)。

一種選擇是你可以輸出到另一個位置。導出不會有.svn文件夾,並且可以在其上運行腳本。文檔:svn exportTortoiseSVN Export

另一種選擇是修改您的腳本以忽略隱藏的目錄或構建更好的構建工具。

-1

我不知道我是否會刪除它們,但可能修改您的構建腳本以忽略複製它們將是一個好主意。我使用Ant來編譯和構建我的戰爭,並且它忽略了.svn dirs。

+0

刪除它們不是一個好主意,除非你想要該文件夾不是工作副本了。 – crashmstr 2009-08-19 16:53:42

5

posted this yesterday over here,但這裏又是因爲我有種把它放在錯誤的線程反正...


我已經得到的東西,應該讓你的一天。原始來源是here

這是一個(絕對安全)的外殼擴展,它將在Windows中的右鍵菜單中添加「刪除SVN文件夾」。在任何包含這些討厭文件的目錄上運行它。

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\" \"" 

爲了讓您的構建腳本的這部分複製到cmd.exe的調用並執行它。

1

svn export是你想要的。它會給你一個沒有.svn目錄的代碼樹的乾淨副本(請注意,這個副本不在版本控制之下,一旦它被導出,svn命令就不能工作)。

我利用這種方法在生產服務器上啓動代碼。我們的構建腳本需要導出代碼分支,tars和gzip它,將其上傳到正確的服務器,然後解壓縮/解壓縮它。

68

我不確定您的具體情況是否要刪除所有.svn目錄。但是,如果你這樣做,這裏是一個bash一行程序來做到這一點:

find . -name .svn -print0 | xargs -0 rm -r 
+2

運行命令之前,一定要輸入正確的目錄,例如: cd mySVNdirectoryWhereToRemoveTheSubfolders – Camaleo 2014-10-01 10:22:49

0

你可以看看SVK,這是顛覆之上的一層。其中一個優點是,工作副本的存儲庫元數據通常存儲在.svn目錄中,而不是保存在一箇中央位置,因此您沒有隱藏難看的.svn目錄問題。這很好。

3

而且一個PowerShell版本

ls -Force -Recurse -Filter .svn | rm -Force -Recurse 
+0

有時候,一個代碼會繼承代碼,這樣做更有用。謝謝! – jray 2009-11-03 00:17:28

5

find . -name '.svn' -depth -exec rm -rf '{}' \; -ls

+0

upvote用於安裝了cygwin的Windows用戶。不過,我發現使用文件資源管理器搜索框要容易得多。 – Roland 2014-08-26 09:05:09

0

發現 「/ YourFolder」 -name「.svn」-exec rm -fdR {} \;

入住這 link

5

在Win32/Win64的系統,下面的命令應該做的工作:

del /q /s .svn 
相關問題