我有一个现有的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
分支?
答案 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。