关于SVN/IntelliJ,什么是“switched files”?

10

我有一个已存在的Maven项目,用它创建了一个新的IntelliJ项目(使用“从外部模型导入项目”的选项)。我修改了一些文件并提交了它们。

然后我意识到我在错误的分支上(我们称之为wrong)。我退出IDEA,使用Tortoise SVN切换到正确的分支(我们称之为right),然后重新打开IDEA。一切似乎都很好,除了变化窗口的本地标签中现在有一组名为“Switched Files”的文件。这个“Switched Files”有一个子组叫做“branches/wrong”,其中包含整个仓库中的所有文件!这些文件与检入right的文件没有区别,大多数文件与wrong中的文件也没有区别。但是它们仍然会出现在我的变化窗口中。

此外,这些文件不会出现在Tortoise的“提交”窗口中,但是它们会出现在Tortoise的“检查修改”窗口中。但是,就我所知,这些文件并没有被修改,它们的属性也没有被修改。

什么是“Switched Files”,如何简单地将所有东西恢复到right分支?


我在svn中没有使用过switch命令,但通常当出现这种情况时,我只需进行清理检查即可。 - Slartibartfast
2个回答

9

显然这只是Subversion的一个问题,我不知道“switched”文件的概念。你可以使用命令行来判断是否有文件被切换:

$ svn st
    S  file1.txt
    S  file2.txt

“switched”文件将标记为“S”。如果您在其中一个文件上执行svn info,则会发现列出的URL与当前分支的URL不匹配。有关更多信息,请参见此SO帖子

我仍然不知道它的真正含义,或者通过“Tortoise -> Switch…”如何进入该状态,但我知道如何修复它:

$ svn switch URL

在这里,URL指定了你要切换到的分支的svn:// URL。 这将递归扫描所有文件并将它们牢固地放置在“正确”的分支上。


1
Any way to do this in idea? - Dynite
关于它如何进入这种状态,在我的情况下,我认为这是由于网络问题中断了切换时发生的。 - Line

7

我曾遇到类似问题,切换分支后,某个文件出现了“switched”的标记。

通过使用IDEA,我成功解决了这个问题。具体方法是:确保没有做任何本地更改,先切换回“错误”的分支,再切换回“正确”的分支即可。

需要注意的是,我是使用IDEA进行切换操作,而不是Tortoise。


对我来说,切换到第三个分支再切回来也可以。如果那个分支更相似的话可能更理想。 - Mark

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接