2010-08-06 34 views
17

我的分支2274從默認分支。修訂版415是第一次承諾,它與修訂版共享祖先。 412在默認分支上。hg移植失敗 - 我如何'修復合併',因爲它表明?

Branch2274是一個bug修復它需要儘快融入默認值,但我做了一件非常愚蠢的事情 - 我從一個特性分支的改變合併(在轉418)

簡單來說,我需要撤消任何修改引入了rev。 418似乎有很多的方法來嘗試這一點,但我努力讓其中的任何工作:

水銀隊列嘗試:

我試着輸入轉速415,416,417, (跳過418),421,428進入補丁隊列,所以我可以將它應用到rev425。

問題:tortoisehg將只允許我導入轉428,421,但導入417灰顯,但導入418只是給我錯誤「中止:無法導入合併修訂版本418」

移植嘗試:

patching file Portal/Instructor/Login.aspx.vb 
Hunk #1 FAILED at 18 
1 out of 1 hunks FAILED -- saving rejects to file Portal/Instructor/Login.aspx.vb.rej 
applying 66b6b089ee01 
abort: Fix up the merge and run hg transplant --continue 
patch failed to apply 

[command interrupted] 

Login.aspx.vb在默認情況下已更改,我明白爲什麼合併失敗。

我該如何「修復」合併?

另外,是否有一個更簡單的方法讓我接受修復。 418,並告訴mercurial撤消它在case2274上的新提交所帶來的更改?

+0

什麼圖形可視化? – Mizipzor 2010-08-19 13:50:00

+1

它內置於TortoiseHG 1.1 http://tortoisehg.bitbucket.org/download/index.html – 2010-08-19 16:51:11

回答

18

爲了不留下未回答的問題(!),我設法解決了這個問題,最終的答案是沒有簡單的方法來自動解決問題。移植處理的是補丁,兩個文件之間的差異,但沒有考慮到這兩個文件的共同祖先,所以很難知道當文件被同一地點的兩個人更改時該怎麼做。

解決方法是在文本編輯器中加載文件,並加載列出修補程序失敗部分的.rej文件。我只需將我的新增功能放在代碼文件中的一個明智的地方。

運行:

hg transplant --continue 

..allowed我申請的其他補丁。

如果有人關心花一些時間擴大這個答案與一些洞察力或一些相關的鏈接,那麼答案是他們的。

+1

我忍不住,但我和你一樣處於相同的位置。你可能考慮的另一個選擇是創建一個補丁。我完全承認,我不知道汞是否只是我自己學習,但在我的測試中,試圖找到我如何從一個分支「挑選」一個分支並將其合併到另一個分支,我發現我可以很容易地從我想要的變更集創建一個補丁文件,然後將該頁面導入到我的工作目錄。 – chrismay 2011-10-15 16:23:39

+0

@尼爾:你救了我的命; – 2012-03-30 19:55:58

相關問題