Как вы можете получить текущее состояние (история хороших / плохих пересмотров) деления от Mercurial - PullRequest
10 голосов
/ 13 октября 2011

Когда я делаю hg bisect в затмении, мне нравится, что я вижу все плохие вещи и товары, которые я отмечал в прошлом.
Есть ли способ получить эту информацию в командной строке?

Ответы [ 4 ]

10 голосов
/ 13 октября 2011

Существует предикат revset для этого:

"bisected(string)"  
 Changesets marked in the specified bisect state (good, bad, skip).

source

Для дальнейшего использования Mercurial 2.0 представит улучшенную версию (старая будет продолжатьработа):

"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
6 голосов
/ 30 сентября 2015

Как указано в комментарии @adambox, это должно работать:

hg log -r "bisect(good) or bisect(bad)" --template "{rev}:{node|short} {bisect}\n"
1 голос
/ 23 июня 2016

В Mercurial 3.8.2 (и, возможно, ранее) вы можете использовать это:

hg log --template bisect
0 голосов
/ 14 февраля 2013

Вот скрипт bash (я назвал его bisectstate), который работает теперь, когда доступен предикат bisected().

(я использовал colorex, чтобы украсить его цветами, но вы можете убрать его, если он не установлен).

#!/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[=:]'

Вывод выглядит так:

sample bisectstate output

...