什么是关于SVN / IntelliJ的“切换文件”?

时间:2011-10-21 18:57:18

标签: svn tortoisesvn intellij-idea

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

然后我意识到我在错误的分支上(我们称之为wrong)。我退出IDEA,使用Tortoise SVN切换到正确的分支(让我们称之为right),然后重新打开IDEA。一切似乎都很好,除了,我现在在Changes窗口的Local选项卡中有一个名为“Switched Files”的组。这个“Switched Files”有一个名为“branches / wrong”的子组,它似乎包含整个存储库中的所有文件!这些文件与签入right的文件没有区别,大多数文件也与wrong中的文件没有区别。然而,他们在我的更改窗口中。

此外,这些文件没有出现在Tortoise“Commit”窗口中,但是他们出现在Tortoise“Check for modification”窗口中。但是,据我所知,这些文件还没有被修改,也没有任何属性被修改过。

什么是“切换文件”,如何将所有还原到right分支?

2 个答案:

答案 0 :(得分:7)

显然这只是Subversion的事情。我不知道“切换”文件的概念。您可以使用命令行判断是否切换了某些文件:

$ svn st
    S  file1.txt
    S  file2.txt

“已切换”文件将标有“S”。如果您对其中一个文件执行svn info,则会看到列出的URL与当前分支的URL不匹配。有关详细信息,请参阅this SO post

我仍然不知道它究竟意味着什么,或者只是通过“Tortoise - > Switch ...”进入该状态,但我确实知道如何修复它:

$ svn switch URL

其中URL是您要切换到的分支的svn:// URL。这应该递归扫描所有文件并将它们牢牢地放在“正确”的分支上。

答案 1 :(得分:4)

我刚才有一个类似的问题,在切换分支后,一个文件标记为"切换"出于某种原因。

我能够通过IDEA解决这个问题,确保我没有任何本地更改,切换回错误的"分支,然后再次切换到"右"分支。

请注意,我使用IDEA切换,而不是Tortoise。