我在检查项目并尝试更新现有文件时遇到了一个奇怪的问题。我在svn存储库中有几个项目分支。我使用一个工作项目目录(比如“proj”)来检查我想要处理的分支。
假设我一直在“proj”文件夹中检出“branch1”,现在我想处理“branch2”。所以我在“proj”中删除.svn,并从存储库中检出“branch2”到“proj”(将所有文件放在“branch2”,branch2 / *,直接在“proj”下,而不创建文件夹“branch2”)。问题是svn checkout实际上不会更新现有文件,比如说“file1”已经存在(它在branch1和branch2中),它不会更新到“branch2”中的版本,除非我删除“file1”,或结帐“branch2”到空文件夹。即使我执行svn update -r #rev file1,它也不会实际更新file1,尽管svn status file1显示了file1的正确#rev。顺便说一下,svn checkout的输出显示已经存在的所有文件的“E”。
这是svn应该表现的吗?我是否必须删除文件才能更新?我对这种行为不满意,因为它是反直觉的,并且导致在分支之间切换的麻烦。你能给出一些简洁的解决方案吗?感谢。
答案 0 :(得分:2)
你应该使用
svn switch <branch-repo path>
切换到另一个分支。