2011-09-01 162 views
1

我有一種情況,我分支出主幹,並且在我的分支進行了許多天的開發工作後,其他人在主幹中更改了項目目錄的名稱。像這樣: from/Project/Directory/trunk/old_dir_name to/Project/Directory/trunk/new_dir_name在主幹目錄名稱更改後,SVN從主幹分支合併到分支

這使我產生了一些問題(當然)。

看從當他這樣做的日誌條目,所有它顯示的是:從已刪除路徑修訂 行動路徑複製/項目/目錄/主幹/ old_dir_name 添加/項目/目錄/主幹/ new_dir_name /項目/目錄/ trunk/old_dir_name 12345

當我嘗試將樹幹測試合併到我的分支,所以我會有最新的更新,我在一個文件上得到了一個衝突的錯誤。如果我嘗試測試合併該文件的最新版本,我會得到:Error Repository永久移動到'... /!svn/bc/13649/Project/Directory/old_dir_name/trunk'。

我該如何解決這個問題,以便我可以根據需要更新我的分支?

(如果重要,我們使用TortoiseSVN前端)。

+0

這個'/ Project/Directory/trunk/old_dir_name'和'... /!svn/bc/13649/Project/Directory/old_dir_name/trunk'有點不一致。你能澄清一下嗎? –

回答

0

這是自2002年以來衆所周知的svn錯誤 - 請參閱here

例如,如果您重命名分支中的文件/目錄(或其下的文件),並且trunk上的文件/目錄(或其下的文件)發生更改,則將分支合併到trunk中會有問題。

爲什麼會發生這種情況?這很簡單 - svn rename被實現爲刪除文件(a)並添加新名稱(a')。所以在我的例子中的分支(a')和(a)不是從同一個文件繼承的。 Hovewer,svn試圖最小化問題並添加(a')有關(a)的標籤信息,所以如果你使用svn登錄(a'),你會看到重命名操作,以及(a)的更改。