¿Cómo se puede obtener el estado actual(historial de revisiones buenas/malas) de una bisección de mercurial?
bisect (4)
Al hacer una bisectriz de hg en eclipse, me gusta que pueda ver todos los males y bienes que he marcado en el pasado.
¿Hay alguna manera de obtener esa información en la línea de comando?
Aquí hay un script bash (lo llamé bisectstate
) que funciona ahora que el predicado bisectstate
bisected()
está disponible.
(Utilicé colorex
para arreglarlo con colores, pero puede eliminarlo si no lo tiene instalado).
#!/bin/bash -f
style() {
echo "{rev}$1 {author|person} {date|shortdate} {desc|firstline}/n"
}
(hg log -r ''not . and bisect(good)'' --template "`style -good:`" ;
hg log -r ''. and bisect(range) and not (bisect(good) or bisect(bad) or bisect(skip))'' --template "`style -cur:`" ;
hg log -r "not . and bisect(bad)" --template "`style -bad:`" ;
hg log -r ''not . and bisect(skip)'' --template "`style -skip:`" ;
hg log -r ''. and bisect(good)'' --template "`style -cur=good:`" ;
hg log -r ''. and bisect(bad)'' --template "`style -cur=bad:`" ;
hg log -r ''. and bisect(skip)'' --template "`style -cur=skip:`" ;
# Include the intermediate, unmarked changes in the bisect range.
hg log -r "bisect(range) and not (. or bisect(good) or bisect(bad) or bisect(skip))" --template "`style`"
) /
| sort | colorex -r bad: -b good: -g ''cur[=:]''
La salida se ve así:
Como se sugiere en un comentario de @adambox, esto debería funcionar:
hg log -r "bisect(good) or bisect(bad)" --template "{rev}:{node|short} {bisect}/n"
En Mercurial 3.8.2 (y probablemente antes) puedes usar esto:
hg log --template bisect
Hay un predicado revset para eso:
"bisected(string)"
Changesets marked in the specified bisect state (good, bad, skip).
Para futuras referencias, Mercurial 2.0 presentará una versión mejorada (la anterior seguirá funcionando):
"bisect(string)"
Changesets marked in the specified bisect status:
- "good", "bad", "skip": csets explicitly marked as good/bad/skip
- "goods", "bads" : csets topologicaly good/bad
- "range" : csets taking part in the bisection
- "pruned" : csets that are goods, bads or skipped
- "untested" : csets whose fate is yet unknown
- "ignored" : csets ignored due to DAG topology