2011-11-20 65 views
0

我有一個svn目錄中有54 000個文件。我重新安排了目錄,所以我現在有54個文件夾,每個文件夾下面有1000個文件,並將其提交給svn。 但我無法從svn刪除54k文件。刪除它花了我很長的時間,但現在當我嘗試提交我剛剛得到: svn:網絡連接意外關閉在svn目錄54k +文件 - 如何刪除

是否有任何其他方式可以方便快捷地刪除這些文件?

+0

你在運行什麼操作系統? – shawty

+0

目前Linux和我得到了相同的svn錯誤,在Windows中的烏龜: – GalGavu

+0

如何從SVN倉庫中取出它,刪除文件並再次提交。但它也會刪除所有的歷史記錄。不建議如果你想保持歷史。 –

回答

0

我假設原來的文件夾結構是SVN爲好。我會做的是回滾到原來的結構,並創建一個腳本,而不是爲每個文件/目錄頒發[svn move][1]。這樣做也會保留文件的提交歷史記錄,並且是重新組織源代碼樹的首選方法。

您也可以進入到您的文件夾結構和較小的塊提交。您失去了可以回滾的一個原子提交的好處。大聲思考,你可以通過分支來模擬這個,重新組織分支(使用svn move!),然後將分支合併回樹幹 - 請注意,你必須在分支中的文件/文件夾上使用svn move,否則svn不會能夠幫助你合併。

+0

究竟應該如何處理?像: 1.將這些54k文件移動到svn移動文件到文件夾的目錄中。 2.搬到樹幹? 那麼現在什麼是移動到主幹的正確命令。 其次,我現在真的想再花兩天時間。 – GalGavu

1

在Linux下與xargs命令關聯使用find命令。

http://www.computerhope.com/unix/ufind.htm 
http://www.computerhope.com/unix/xargs.htm 

喜歡的東西:

find . -name *.foo -print | xargs rm 

會做的伎倆。

看看我提供更多信息的2個鏈接,-name允許你使用普通的通配符如* &? ,-regex允許您使用完整的正則表達式字符串進行更多的控制。

進行測試,你要確保你使用類似:

find . -name *.foo -print | xargs echo 

這樣你就不會accidentually刪除,直到你知道你的文件列表將是什麼。

在windows下它有一點涉及。

它是我過去的經驗,你必須繼續搜索,刪除幾百,然後在資源管理器窗口右上角的搜索框重新搜索。

我一直意思寫我自己一個小工具,現在處理這種情況了一段時間,只是沒有得到全面呢。

+0

這是如何適用於svn?根本不理解...... – GalGavu

+0

很簡單,使用上面的信息可以讓你找到與name參數中的文件模式匹配的文件(在你的情況下,我猜測.svn),然後刪除它們,如果這是你希望做什麼,全部來自Linux命令行。在xargs之後的第二部分可以用任何命令替換,對於EG:svn move命令,如問題的其他響應所示。 – shawty

+0

不,我不需要刪除.svn。我需要從目錄中刪除54 000個文件,由於它是54k文件,我無法做到這一點。 – GalGavu