2012-08-09 68 views
1

這是一個汞會議的總結:可以將mercurial rebase刪除一個分支嗎?

> hg branch dev 
marked working directory as branch dev 
(branches are permanent and global, did you want a bookmark?) 
> hg branch 
dev 
> hg ci -m 'test' 
> hg update default 
3 files updated, 0 files merged, 0 files removed, 0 files unresolved 
> hg pull --rebase 
pulling from ssh://[email protected]/user/repo 
searching for changes 
adding changesets 
adding manifests 
adding file changes 
added 3 changesets with 44 changes to 44 files (+1 heads) 
saved backup bundle to C:\repo\.hg\strip-backup\edc5f75b39d1-backup.hg 

的問題是,經過這一切,沒有任何一絲的「開發」分支的。我無法理解它。我在dev分支中提交了一個更改集,因此它必須已保存。怎麼可能消失?可以用rebro刪除它嗎?

編輯:只是爲了澄清「測試」承諾是存在的,但它是在「默認」分支

+0

「問題是,在所有這些之後,'dev'分支根本沒有任何痕跡 - 你怎麼知道的? 'hg branches'? PS:我個人不會'拉--rebase'永遠 – zerkms 2012-08-09 21:34:28

+0

我知道,因爲我檢查:) hg分支只顯示'默認'。拉 - 基地有什麼問題? – Amati 2012-08-09 21:38:03

+0

我不相信分支消失。什麼是錯的 - 我只是喜歡自己管理變更集;-) – zerkms 2012-08-09 21:39:38

回答

3

最後能夠重現了!

您命名的分支從默認分支上的本地變更集中分支出來。

當您運行pull --rebase時,它會將拉出的變更集插入樹中,然後將您的本地變更集從默認分支中重定位到拉出的默認變更集。

由於您的分支dev從本地變更集中分支出來,因此也會重新分配。此外,由於您無法通過--keepbranchespull --rebase,您將失去分支名稱。

爲了防止發生這種情況,請將dev關閉公共更改集或手動運行重建以--keepbranches

+0

謝謝愛德華,我現在可以證實我得到了同樣的東西 - 如果我分支出本地變更集,分支將被刪除。公開 - 沒問題。雖然,我仍然不明白爲什麼這個行爲是默認的而不是--keepbranches。 – Amati 2012-08-10 17:13:02