2012-06-13 32 views
1

我創建了一個特性分支與主幹並行工作。如何在SVN上保留移動文件夾/文件時對其原始位置的引用?

在BRACH我所做的結構(文件夾)的變化大的量。舉例來說,我已經搬到那名之前的文件夾:

application/views/scripts/users/* 

到:

application/modules/user/views/scripts/users/* 

現在,我嘗試做從主幹合併到這個特性分支,我創建了一百萬棵樹的衝突!問題在於,由於此樹衝突出現,該樹內的任何文件都不會與任何內容合併。

我的意思是,我找到一個樹衝突:

application/views/scripts/users (SVN message: "The last merge operation tried to modify the directory 'users', but it was deleted, moved or renamed locally") 

,並沒有任何文件和是此路徑下的已合併其他文件夾中。

有沒有一種方法來恢復文件夾的原始位置和當前的「鏈接」?

我能做些什麼來解決這個問題?

回答

0

不僅僅是一個解決方案,我可以給出一個解決方法,那就是我使用的解決方案,因爲似乎沒有真正的解決方案。

一個小小的研究,我接近肯定SVN不支持這種功能的合併之後。在TortoiseSVN中的文檔據說:

本地缺少,當合並進來的編輯

開發人員A在主幹上開發的foo.c修改和其提交至 庫

開發B關於一個分支工作的foo.c移動到Bar.c並將其提交給 庫

的開發人員A的主幹更改到開發人員B的分支工作0123合併在樹衝突中複製結果:

Bar.c已處於狀態爲「normal」的工作副本中。

富。c被標記爲缺少樹衝突。

爲了解決這個矛盾,開發人員B必須將文件標記爲在衝突編輯對話框解決 ,將從衝突 列表中刪除。她然後必須決定是否將缺少的文件Foo.c 從存儲庫複製到工作副本,是否將開發者 A對Foo.c的更改合併到重命名的Bar.c中,或者是否忽略 更改爲標誌着衝突解決,別無其他。

這意味着您必須決定一次一棵樹的衝突,該做些什麼。這不是最糟糕的部分。在我的情況下真正不能接受的是,每次我從幹線到這個分支進行新的合併時,我都會被迫再次處理這個衝突。

解決方法:

複製在樹枝做成樹幹(與它的代碼需要改變)的結構變化,並使其與他們一起工作。

提交後,這兩個文件的結構變化,樹幹和分支將匹配,所以以後的合併操作不會再抱怨。

-1

我從你的問題中瞭解到,你在分支中做了很多文件夾結構更改,並且因爲這些更改沒有存在於你的trunk中,並且當你嘗試合併時,你會得到錯誤。

按照您的說法,「現在,我嘗試做從主幹合併到這個特性分支」

在第一個地方,當你已經從你的軀幹採取的分支出來,做了結構那麼你應該將這些改變從「分支到主幹」中合併,或者如果你只是想獲得原始結構(「恢復文件夾的原始位置」),那麼只需恢復你在分支中完成的改變。

希望這會有所幫助。

+0

downvoter請給我們你的理由。 – Ankit

+0

感謝您的答案Ankit,但不完全是。我不想「恢復文件夾的原始位置」,而是保持被移動的文件夾(和文件)之間的關係。當我嘗試合併時,由於「樹衝突」,所有移動的文件都沒有合併,因爲SVN似乎沒有意識到位於中繼線中的文件與分支中的對(移動)之間的關係。 –

+0

對不起,你的問題不對。我在http://svnbook.red-bean.com/nightly/en/svn.tour.treeconflicts.html發現了一些與樹木衝突相關的數據。請看看這是否有幫助。 – Ankit

相關問題