2008-09-19 93 views
12

不是第一次,我意外地從我的項目根目錄下的某個地方完成了「svn switch」。這隻會切換那個子目錄,但我該如何解除這個?如何撤銷子目錄中的「svn switch」?

如果我嘗試切換子目錄回到原來的分支,我得到:

"svn: Directory 'subdir\_svn' containing working copy admin area is missing" 

更新:我有在子目錄的變化,所以我不想做一個刪除。

在短期內,我通過重新應用更改來修復它,但是我之前是通過一種方式讓Subversion重新切換回來的,或者這是一個缺失的功能?

回答

6

快速破解:刪除目錄,上一層,運行svn update。

+0

我在切換的沙箱中進行了更改,因此無法刪除子目錄... – fiddlesticks 2008-09-19 09:55:30

+0

你可以打補丁,做rm/svn,然後重新安裝補丁。 – 2008-09-19 09:58:42

+4

我討厭svn。非常。我花了一天的時間來切換,更新,按摩,刪除,然後再切換幾次以獲得乾淨的開關。 – 2010-02-15 15:17:05

-2
svn revert <dir> 

或者,是的,刪除它,並抓住另一個副本。

5

不知道你是如何做這個開關以及你的目錄和存儲庫佈局如何,很難說你的情況出了什麼問題。

沒有辦法真正「恢復」開關。通常情況下,svn開關可以通過切換回原始位置,即當原始位置位於svn:// url/to/orig/dir時,則以下內容應該可以工作:

將子目錄切換到庫

svn switch svn://path/to/switched/dir/ subdir 

的不同部分...回來重新開機

svn switch svn://url/to/orig/dir subdir 

在你的情況下,它聽起來好像你想切換目錄,是不是你的工作拷貝的一部分。

1

我通過檢入切換目錄中的更改,刪除.svn文件和放錯位置的文件,然後使用svn checkout <rootUrl>,然後使用svn update -r HEAD --force來解決此問題。

我不認爲有一個乾淨的方法來做到這一點。

0

如果最新的變化僅僅是開關的話,

共同的父目錄點擊右鍵,烏龜svn-> 轉到svn的日誌。右鍵單擊SVN切換前的版本,然後選擇恢復到此版本。 。

0

好像它的工作原理運行另一個切換回你實際上是在目錄中正確的路徑是,如果你跑:

svn switch file:///srv/svn/someproject/branch/27 

,而你在someproject /子目錄,然後運行

svn switch file:///srv/svn/someproject/branch/26/subdir 

然後從正確的位置運行原始開關。

這似乎恢復秩序。