Domanda

hg tags mostra sempre tutti i tag, così come posso ottenere solo i tag che puntano a una specifica revisione e di tutti i suoi antenati?

Il caso d'uso nel mondo reale è che se uso i tag locali per designare caratteristiche (o correzioni di bug) sui gruppi di modifiche, e ho bisogno di scoprire le caratteristiche cumulativi / bug fino ad una specifica rev.

Una soluzione potrebbe essere l'aggiunta di un comando wrapper che aggiunge "-r" per tags. Allora qual è il modo migliore per la sua attuazione? Utilizzare revsets per ottenere tutti i regimi ancestrali e filtrare i tag?

È stato utile?

Soluzione

Questo dovrebbe fare il trucco (richiede mercuriale 1.7):

hg log -r "ancestors(<rev>) and tag()"

dove <rev> è il hash o numero di revisione locale. Tuttavia, codifica ogni bugfix e caratteristica sembra eccessivo.

Invece di tagging, è sufficiente seguire una convenzione in cui si mette "bugfix: xyz" o "caratteristica: abc" nei messaggi di commit. È quindi possibile estrarre tutte le correzioni e le caratteristiche in questo modo:

hg log -r "ancestors(<rev>) and (keyword(bugfix) or keyword(feature))"

Tenere i tag per traguardi importanti o altre revisioni che hanno qualche significato speciale.

Altri suggerimenti

Se ho capito bene, si desidera:

  • Specifica una revisione
  • filtrare il registro per solo quel changeset + tutti i suoi antenati
  • Estrai tutti i tag che si trovano in quei gruppi di modifiche

Si può fare che se si può limitare a nomi dei tag:

hg log -r "ancestors(HASH)" --template "{tags}"
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top