2012-03-05 229 views
4

所以這裏有一個問題,我沒有看到問。SVN刪除本地文件,保留在版本庫

進出口使用顛覆1.7

我做了,我並不需要一個目錄中的「SVN合作」,但不能從庫中刪除(其他人都需要它)。我可以刪除目錄的本地副本,這很好,但是當我在根上運行「svn up」時會恢復已刪除的目錄。

/rootDir 
     /folder1.  
     /unneededFolder 

我可以刪除unneededFolder但SVN不停地嘗試,當我運行的ROOTDIR更新,以恢復它(而不是必須運行svn了每個子目錄)。我如何告訴svn停止更新我的工作副本中的該文件夾而不從存儲庫中刪除它?

回答

6

做最簡單的方法是使用:

svn update --set-depth exclude <dir>

這會從你的工作拷貝刪除,但把它留在庫中。

查看關於Sparse Directories的文檔。

0

svn update上的選項-N將導致更新爲非遞歸;只有當前工作目錄中的內容纔會更新。

+0

-N選項被標記爲已棄用。您應該使用--depth = ..來代替。 – khmarbaise 2012-03-05 14:59:38

+0

啊,謝謝!我很感激:) – asf107 2012-03-05 15:12:07

0

你需要的是使用svn客戶端的--depth選項(稱爲稀疏檢出)。這意味着您必須使用--depth選項執行單獨的結帳,以限制將檢出的目錄級別的數量。這意味着你的情況:

svn co URL rootDir --depth=immediate 

比你有一個工作拷貝不包含所有級別。現在你可以去你想要的所有級別或有限級別的目錄。讓我們假設你到文件夾1:

svn update --depth=infinity 

所以以後你不會,除非你去到該文件夾​​得到unneededFolder的內容,做一個:

svn update --depth=infinity 

權衡的是你如果你做了無窮無盡的事,就不能回頭。

此外,您正在討論存儲庫,但您的意思是工作副本。

+0

謝謝。 我實際上已經按照您的指示完成了更多或更少的操作,只檢查根目錄中的立即數,然後根據需要使用「svn update」。 我從中學到的是,你不能「撤銷」一個文件夾上的「svn update」。一旦你更新了一次,就沒有辦法從本地副本中刪除它,並防止它在根目錄下的「svn update」中返回。 然後修復它的方法是徹底刪除本地副本並重新簽出根目錄並更新我需要的文件夾。 Thansk! – 2012-03-07 14:41:45

相關問題