我接手了一個軟件項目,並決定使用Tortoise SVN將所有內容放在SVN下(在Assembla上)。幹線在ROOT下。所以幹線包含了整個應用程序(我標記爲1.0)。對於我的第一個重要功能,我創建了一個名爲「dev」的功能分支。如何「修復」SVN分支/樹衝突?
我可以將trunk分支中的更改合併到dev分支中而不會出現問題(因爲我在做小錯誤修復)。一旦我的功能完成,我做了一個合併回樹幹分支。一切都在起作用。 ROOT下的新代碼正確顯示了新功能。但後來我做了一個提交(合併的結果),現在每次我嘗試從根目錄或開發分支進行合併時,SVN都會抱怨許多文件上的「樹衝突」。即使是合併後我沒有碰到的文件。我試圖解決衝突,但沒有成功。
我是唯一的開發人員,所以我並不真正關心存儲庫的重大更改。但是如果可能的話,我仍然想保留所有文件的歷史記錄。
解決此問題的最佳方法是什麼?有沒有一種方法可以將ROOT中繼中的所有最新文件標記爲文件的「明確」版本?
[編輯]更多信息
- 是, '主' 和 '樹幹' 是一回事。我已經澄清了我的問題
- 從功能分支中合併回來後,您是否首先從trunk中進行了另一次合併以取消最新的trunk變化?「是的,trunk是最新的。所有從主幹上的改變
- 「一切都搞砸了提交」:我的意思是提交很好,但是當我開始從幹線/幹線合併後,SVN抱怨'樹衝突。
- 我有超過200棵樹衝突。所以,我正在尋找的是一個‘照單全收’命令
[編輯] elhoim解決方案沒有解決我的問題。但是,他對SVN版本問題是正確的。目前(2009-10-28),Assembla使用SVN v1.5.1,我的tortoiseSVN使用v1.6。所以這就是我有這麼多樹衝突的原因。我嘗試使用elhoim鏈接提供的解決方案,但它不起作用(在嘗試HEAD到HEAD的合併之前,我嘗試了多次合併,有些文件因爲這個原因沒有轉到根分支)。
看到HEAD到HEAD的合併仍然不起作用,我決定刪除我的分支文件夾中的所有「.svn」文件,將這些文件複製到ROOT文件夾中並進行提交。
@eldimo:當你把'main'合併到'dev'中時,是與主幹相同的'main'分支嗎?還是有變化,坐在'主',樹幹還沒有看到? – dls 2009-10-20 01:43:06
@dls:我認爲他使用術語「main」和「trunk」來表示同一個分支。 – 2009-10-20 02:41:49
@eldimo:需要一些細節以獲得更好的清晰度:1.當您從功能分支中合併回來時,您是否首先從trunk中進行另一次合併以取消最新的trunk變化? 2.你的意思是「所有事情都搞砸了」嗎?是否有可能提供您在提交期間得到的錯誤消息? – 2009-10-20 02:47:45