2010-08-03 22 views
3

今天我發現我可以切換回分支,即使我關閉它。爲什麼?爲什麼我可以在關閉它之後切換到分支?

hg init abc 
cd abc 
echo 'readme1' > README1.txt 
hg ci -Am "1st commit" 
hg branch other-branch 
echo 'readme2' > README2.txt 
hg ci -Am "2nd commit" 
hg update default 
hg merge other-branch 
hg ci -m "Merged other-branch into default" 
hg update other-branch 
hg ci -m "Closing other branch" --close-branch 
hg update default 

現在我認爲我不應該這樣做

hg update other-branch 

但它工作正常

它混淆了我,讓我感到有些不安。

UPDATE:對不起,忘了說明,我使用HG v.1.6

回答

2

似琥珀說,當你關閉一個分支時,它會記錄它已關閉。因此,當您執行「hg branches」時,您只會看到「default」,而不是「other-branch」。

但是,只要切換到此分支並提交新的東西,它會自動重新打開它(因此會再次出現在「hg branches」列表中)。完成後,您也可以重新關閉它。

我覺得這個特性實際上是可取的:想象一下你創建了一個"stable"分支來穩定一些交付代碼,只允許在這個分支上修復錯誤。現在交付後,您可以關閉穩定分支並在默認情況下重新開發新功能,切換到下一個迭代並準備下一個交付(假設您正在使用scrum)。現在,在三天後,您的送貨客戶發現問題並要求獲得固定送貨服務,而不想等待下一個,然後您可以輕鬆切換到穩定的分店,重現問題,修復問題(重新開啓分店) ,重新部署,並最終再次關閉該分支。這似乎是一個似是而非的情景,對我來說是一個很好的Mercurial行爲。

只是我的0.02€:-)

乾杯,
克里斯托夫。

= 21世紀的文盲不會是那些無法讀寫的人;他們將是那些無法學習,忘卻和重新學習的人。 - 阿爾文托夫勒=

相關問題