0

我在签出项目并尝试更新现有文件时遇到了一个奇怪的问题。我的项目在 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 应该表现的吗?我是否必须删除文件才能更新它们?我对这种行为不满意,因为它违反直觉,并且会导致在分支之间切换的麻烦。你能给出一些巧妙的解决方案吗?谢谢。

4

1 回答 1

2

你应该使用

svn switch <branch-repo path>

切换到不同的分支。

于 2012-04-27T22:08:17.017 回答