如何使用多个hg mq补丁队列(在一个存储库中与多个子库中)

时间:2011-05-15 09:28:21

标签: mercurial tortoisehg mercurial-queue

我正在尝试使用MqTutorialHGbook Chapter 13中所述的MQ设置我的工作流程。 我努力的部分是如何在版本下有多个补丁队列。

备选方案:

予。为每个队列创建单独的存储库。为了使这个可管理的标记将repos作为.hgsub文件中的子目录

问题:以下结果导致错误:路径包含非法组件

 .hg/patches-queue1 = .hg/patches-queue1

II。 HGbook Chapter 13描述了您可以在子目录中添加补丁,例如

 qnew queue1/patch1.diff

问题:所有补丁仍然在同一个队列中,必须按顺序应用

是否有另一种方法可以将所有补丁队列置于版本控制下并推送? 一个存储库中有多个HG MQ补丁队列?

1 个答案:

答案 0 :(得分:14)

查看属于mq的hg qqueue命令。它允许您以自动方式切换多个补丁队列:

hg qqueue [OPTION] [QUEUE]

manage multiple patch queues

    Supports switching between different patch queues, as well as creating new
    patch queues and deleting existing ones.

    Omitting a queue name or specifying -l/--list will show you the registered
    queues - by default the "normal" patches queue is registered. The
    currently active queue will be marked with "(active)".

    To create a new queue, use -c/--create. The queue is automatically made
    active, except in the case where there are applied patches from the
    currently active queue in the repository. Then the queue will only be
    created and switching will fail.

    To delete an existing queue, use --delete. You cannot delete the currently
    active queue.

    Returns 0 on success.

options:

 -l --list    list all available queues
 -c --create  create new queue
    --rename  rename active queue
    --delete  delete reference to queue
    --purge   delete queue, and remove patch dir

你不能把.hg中的东西作为外部(外部/父级)回购的子回购,但它应该可以为每个qqueue回购有不同的路径,并且可能使它们都是a的子回报。父回购本身就是.hg / patches。