2012-08-16 90 views
1

我在回購中使用hg書籤,因爲它們允許我輕鬆使用不同的功能。 Mercurial的事情仍然是,所有提交都與分支相關聯。所以,我所做的是我有很多本地更改,並且有很多被拉到同一分支(但未更新)。換句話說,我的本地回購是這樣的:將本地提交重新分配給Mercurial中的其他分支

default  -------E-F--------- 
newf  -A-C-D---------J--- 
newf,bmark --\--------H-I----K 

newf是一個分支,是在遠程,拉至J和bmark是我創建的書籤。在newf中,標有bmark的所有內容都嚴格限制在本機上。

現在,我想重新分配H,I和K(實際上,有~20個變化)到不同的分支,我可以推送到回購。有沒有辦法在Mercurial中這樣做,以便我的工作副本(我仍有一些未提交的更改)保持不受影響?

基礎上建議,使用「重訂」,我嘗試以下步驟:

hg up -r A 
hg branch newbranch && hg ci -m "will hold some development" 
# This effectively made a commit X 
hg up bmark 
hg rebase -d newbranch 

除了獲取有關階段出現一些錯誤,底墊給我的東西我不會期望:

default  -------E-F--------- 
newf  -A-C-D---------J--- 
newf,bmark \ -----H-I----K 
newbranch  \X/ 

也就是說,HIK上市仍然屬於newfbmark,他們對提交X頂部屬於分支newbranch。我在這裏做錯了什麼?

回答

1

我使用rebase將提交從一個分支移動到另一個分支。你的情況會起作用嗎?

+0

我在我的案例中添加了使用rebase的結果。也許我做錯了什麼,但rebase沒有幫助。 – 2012-08-16 14:11:04

+0

@NikolaKnezevic我認爲你需要指定一個'--source'分支,並從它的外觀中選擇你想要的'--detach'。你讀過什麼文件? – Mizipzor 2012-08-16 14:17:21

+0

我也嘗試使用'--source'(如'hg up -r X && hg rebase -s K'),但由於某些原因,這並不起作用。我讀了你鏈接的維基和'hg -v help rebase'(順便說一句,它提到-D已被棄用)。 – 2012-08-16 14:43:35

相關問題