2012-04-27 71 views
0

檢出項目並嘗試更新現有文件時遇到一個奇怪的問題。我在svn倉庫中有幾個分支。我使用單個工作項目目錄(比如「proj」)來檢查我想要處理的分支。svn不會更新現有文件

假設我一直在「proj」文件夾中檢出「branch1」,現在我想在「branch2」上工作。因此,我刪除了「proj」中的.svn,並從存儲庫中檢出「branch2」爲「proj」(無需創建文件夾「branch2」將所有文件放在「branch2」,branch2/*,直接放在「proj」下)。問題是svn checkout不會實際更新現有的文件,比如說「file1」已經存在(它在branch1和branch2中),它不會被更新爲「branch2」中的版本,除非我刪除「文件1」或結帳「分支2」到一個空文件夾。即使我執行svn update -r #rev file1,它實際上也不會更新file1,儘管svn status file1顯示file1的正確#rev。順便說一下,svn checkout的輸出對於已經存在的所有文件顯示「E」。

這是什麼svn應該表現?我必須刪除這些文件才能更新嗎?我對這種行爲感到不滿,因爲它違反直覺,並且會在分支之間切換。你能否提供一些簡潔的解決方案?謝謝。

+1

你爲什麼要刪除'.svn'文件夾?你根本不需要這麼做。 – Makoto 2012-04-27 21:59:17

+0

如果我不這樣做,它會提示:svn:'。'已經是另一個URL的工作副本,因爲我單獨檢出「branch1」,「branch2」文件夾,並將branchi/*直接放在「proj」文件夾下,而不創建branch1或branch2文件夾。 – Fashandge 2012-04-27 22:04:47

回答

2

您應該使用

svn switch <branch-repo path> 

切換到不同的分支。

+0

謝謝!這正是我想要的,它的工作原理。 – Fashandge 2012-04-27 22:22:01