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

Cil*_*vic 6 mercurial tortoisehg mercurial-queue

我正在尝试使用MQ设置我的工作流程,如MqTutorial和HGbook第13章中所述.我努力的部分是如何在版本下有多个补丁队列.

备择方案:

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

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

 .hg/patches-queue1 = .hg/patches-queue1
Run Code Online (Sandbox Code Playgroud)

II.HGbook第13章描述了您可以在子目录中添加补丁程序

 qnew queue1/patch1.diff
Run Code Online (Sandbox Code Playgroud)

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

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

Ry4*_*ase 14

查看hg qqueuemq 的命令.它允许您以自动方式切换多个修补程序队列:

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
Run Code Online (Sandbox Code Playgroud)

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