Являются ли конкретные команды Mercurial Queue эквивалентными командам Mercurial с параметром --mq? - PullRequest
1 голос
/ 11 февраля 2011

Я пытаюсь изучить Mercurial Queues, и меня смущает то, что в нем есть куча команд "hg q *", а также много обычных команд hg с параметром --mq.Я думаю, что параметр --mq предназначен для замены некоторых команд q *, но я не уверен.Похоже, что нет руководства или документации по (новым?) Предпочтительным методам.

Ответы [ 2 ]

4 голосов
/ 11 февраля 2011

Параметр --mq влияет на все команды, которые принимают репозиторий в качестве аргумента - он фактически меняет целевое хранилище на $(hg root)/.hg/patches, поэтому он фактически аналогичен выполнению любой команды mercurial, подобной этой:

hg --repository $(hg root)/.hg/patches ....

В результате каждая команда, имеющая параметр -R/--repository, имеет параметр --mq и не нуждается в изменении для ее получения.Любая команда, которую вы ранее использовали в Mercurial: коммит, push, pull, summary, id и т. Д., Может занять --mq.Вот соответствующий код Python:

def mqcommand(orig, ui, repo, *args, **kwargs):
    """Add --mq option to operate on patch repository instead of main"""

    # some commands do not like getting unknown options
    mq = kwargs.pop('mq', None)

    if not mq:
        return orig(ui, repo, *args, **kwargs)

    q = repo.mq
    r = q.qrepo()
    if not r:
        raise util.Abort(_('no queue repository'))
    return orig(r.ui, r, *args, **kwargs)
1 голос
/ 21 февраля 2011

Команды, которые флаг --mq делает ненужными, помечены как устаревшие, поэтому они исчезают с hg help mq.Вот почему qcommit и qinit больше не отображаются.

Вы все равно можете сделать hg qcommit, чтобы просмотреть справку по команде, если вам интересно.

Лично я не понимаюне нравится флаг --mq.Вместо этого я использую псевдоним оболочки:

mq='hg -R $(hg root)/.hg/patches'

, а затем я могу сделать mq status, mq commit, mq push и т. Д. Я считаю, что различие между командами hg и mqимена соответствуют тому, как я думаю об операциях.Обратите внимание, что этот простой псевдоним не учитывает несколько очередей, поэтому, если вы используете hg qqueue, вам придется немного его расширить.

...