¿Cómo get la revisión más cercana a la dada que contiene otros cambios que solo .hgtags?

Tengo una key hash de revisión. Me gustaría get la revisión más cercana que contenga algo, pero los .hgtags.

Por ejemplo, considere el siguiente fragment de una historia de Mercurial:

D:\CI\NC\8.0>hg log -l3 -b 8.0 -v changeset: 1768:633cf1f61665 branch: 8.0 tag: tip user: ci date: Wed Nov 16 21:06:20 2011 +0200 files: .hgtags description: Replaced tag 'good.NC.16' with 'rejected.NC.16' for changeset 9451e8f187b1 changeset: 1767:6cad328c622c branch: 8.0 parent: 1765:9451e8f187b1 user: ci date: Wed Nov 16 21:04:26 2011 +0200 files: .hgtags description: Added tag 'good.NC.16' for changeset 9451e8f187b1 changeset: 1765:9451e8f187b1 branch: 8.0 tag: rejected.NC.16 user: gilad date: Tue Nov 15 18:26:09 2011 +0200 files: .hgignore description: update 

En este caso, si la revisión dada es 633cf1f61665 , entonces estoy buscando la revisión 9451e8f187b1 , porque es la más cercana, que contiene no solo .hgtags, sino algo más.

¿Cómo, dado 633cf1f61665 , puedo ubicar 9451e8f187b1 usando las menores invocaciones de hg.exe posibles?

EDITAR

He corregido el resultado, debería haber mostrado revisiones de la misma twig.

EDIT2

Trataré de explicarme a mí mismo. Vamos a definir dos nociones:

  • Un set de cambios aburrido: el creado por la acción de la hg tag .
  • Un set de cambios interesante: cualquier set de cambios no aburrido.

Por lo tanto, mi pregunta puede reformularse así:

 Given an arbitrary revision (dull or interesting) I need to find the closest interesting revision belonging to the same named branch using as few hg invocations as possible. 

Por ejemplo, dados 633cf1f61665 o 6cad328c622c o 9451e8f187b1 la revisión requerida es 9451e8f187b1 .

Prueba con

 $ hg log -r "max(::REV and not file(.hgtags))" 

y mira si eso hace lo que quieres. Consulte hg help revsets para get más información sobre el lenguaje de consulta.

Puede hacer un alias de revset para esto si lo usa a menudo:

 [revsetalias] interesting($1) = max(::$1 and not file(.hgtags)) 

y luego use hg log -r "interesting(123)" en el futuro.