I comandi specifici della coda mercuriale sono equivalenti ai comandi mercuriali con un parametro - -MQ?
-
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?).
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 '.