2008-09-19 87 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 

然后从正确的位置运行原始开关。

这似乎恢复秩序。