我讀過Steve Losh的article關於使用MQ的qqueues命令創建多個隊列。這有可能讓我更接近我個人對Nirvana(即Git本地分支機構)的看法,因爲我可以保持與獨立功能相互隔離的更改,我可以將本地更改捲入上游發佈的單個修補程序,當我完成它們之後,我可以刪除這些隊列。真棒。除了我無法使它工作。我使用hg qqueue -c feature1創建第一個隊列,使用qrefresh將補丁應用於它,然後嘗試創建一個新隊列。當我做我得到一個錯誤:MQ/Mercurial中的多個臨時/本地任務分支?
~/src/mqtest$ hgl
@ 55ae767d5eae Adding feature1file 2013-04-29 15:32 -0500 Jon Blackburn default addFeature1file qbase qtip tip
|
o 58b232e9b36a Initial commit on default. 2013-04-29 15:27 -0500 Jon Blackburn default qparent
~/src/mqtest$ hg qapplied
addFeature1file
~/src/mqtest$ hg qq
feature1 (active)
patches
~/src/mqtest$ hg qq -c feature2
abort: new queue created, but cannot make active as patches are applied
~/src/mqtest$
我做錯了什麼?
謝謝。
P.S. @Lazy Badger對我是否需要流行 - a以改變隊列表示懷疑。我會先說,這是我發現的唯一工作。此外,從mq.py:
def _setactive(name):
if q.applied:
raise util.Abort(_('new queue created, but cannot make active '
'as patches are applied'))
_setactivenocheck(name)
如果有切換到一個新的隊列,而我已經得到了應用到一個我在補丁更合適的方式,我很樂意聽到它。有了這個解決方案,工作流程將是1)pop -a; 2)qqueue feature2; 3)可選地,按-a(如果feature2已經有一些補丁)。我不清楚爲什麼 mq要求不要將補丁應用到您要離開的隊列中。我不能想出一個有用的場景。如果我現有的隊列必須爲空讓我離開它,那麼可能會提供一個標誌來告訴mq彈出 - 我的當前隊列(並且推送 - 我的目標隊列)?
謝謝,獾。我不得不說在這裏缺乏文檔。爲什麼我必須在當前隊列上運行hg qpop -a才能移動到另一個?對我來說似乎很奇怪。但我是一個容納者,這就是我。 – 2013-05-01 14:59:47
@JonathanBlackburn - 我不確定**強制** qpop -a用於切換到*現有*隊列與'hg qqueue' –
2013-05-01 17:40:50
_______________ – 2013-05-03 13:48:33