Как сделать несколько очередей hg mq patch (в одном репозитории и во многих подпунктах) - PullRequest
6 голосов
/ 15 мая 2011

Я пытаюсь настроить рабочий процесс с помощью MQ, как описано в MqTutorial и в HGbook Chapter 13 . Часть, с которой я борюсь, это как иметь несколько очередей патчей в версии.

Альтернативы:

I. Создайте отдельный репозиторий для каждой очереди. Чтобы сделать это управляемым, отметьте репозитории как подпункты в файле .hgsub

Проблема: следующее приводит к ошибке: путь содержит недопустимый компонент

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

II. HGbook Глава 13 описывает, что вы можете добавлять патчи в подкаталоги, такие как

 qnew queue1/patch1.diff

Проблема: все исправления все еще находятся в одной очереди и должны применяться в порядке

Есть ли другой способ, чтобы все мои очереди исправлений находились под контролем версий и выдавались? Несколько очередей исправлений HG MQ в одном хранилище?

1 Ответ

14 голосов
/ 15 мая 2011

Проверьте команду hg qqueue, которая является частью mq. Это позволяет вам автоматически переключать несколько очередей исправлений:

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, и, возможно, сделать их всеми подпредставлениями репо родительское репо, которое находится внутри .hg / patches.

...