I comandi specifici della coda mercuriale sono equivalenti ai comandi mercuriali con un parametro - -MQ?

StackOverflow https://stackoverflow.com/questions/4971202

  •  12-11-2019
  •  | 
  •  

Domanda

Sto cercando di imparare le code mercuriali e sono confuso da esserci sia un mucchio di comandi "Hg Q*" sia anche molti comandi HG normali con il parametro "--MQ". Penso che il parametro - -MQ sia pensato per sostituire alcuni dei comandi Q*, ma non ne sono sicuro. Non sembra esserci un tutorial o una documentazione sui metodi preferiti (nuovi?).

È stato utile?

Soluzione

Il --mq L'opzione influisce su tutti i comandi che prendono un repository come argomento: in realtà cambia il repository target per essere $(hg root)/.hg/patches, quindi è effettivamente lo stesso di eseguire qualsiasi comando mercuriale come questo:

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

Risulta, ogni comando che ha un -R/--repository L'opzione ha un'opzione -MQ e non ha bisogno di essere modificata per ottenerne una. Qualsiasi comando che tu abbia usato in precedenza in mercuriale: commit, push, pull, riepilogo, id, ecc. --mq. Ecco il codice Python pertinente:

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)

Altri suggerimenti

I comanda che il --mq la bandiera rende non necessarie sono state marcate deprecate in modo da scomparire da hg help mq. Ecco perché qcommit e qinit Nessun a lungo presentarsi.

Puoi ancora fare hg qcommit Per vedere l'aiuto per il comando se sei curioso.

Personalmente, non mi piace il --mq bandiera. Invece uso un alias Shell:

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

E poi posso fare mq status, mq commit, mq push, ecc. Trovo che la distinzione tra il hg e mq I nomi dei comandi corrispondono al modo in cui penso alle operazioni. Si noti che questo semplice alias non tiene conto di più code, quindi se si utilizza hg qqueue, allora dovrai estenderlo un po '.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top