2011-10-13 2 views
10

日食でhg bisectを実行すると、私は過去にマークしたすべての悪意と商品を見ることができるのが好きです。
コマンドラインでその情報を取得する方法はありますか? (古いものは動作し続けます)将来の参考のために水銀からバイセクトの現在の状態(良い/悪いリビジョンの履歴)を取得するには

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

source

、改良版をご紹介します2.0のMercurial:

答えて

9

そのためrevset述語あります

"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 
+2

+1 bisect revsetを検出します。実際の例があれば?私は次のようなものを推測するでしょう: 'hg log -r"は二等分された(良い)か、二等分された(悪) "'? – icabod

+0

ありがとう!いくつかのノート:この機能を利用するには、水銀1.6から1.9にアップグレードする必要がありました。私はまた、( "hgヘルプテンプレート"で)icabodのようなことをするために良いか悪いかを見る方法を見つけることができません。それは2つの別々のログを作成し、それらを一緒にソートして可視化する必要があるならば残念ですが、そうであるように見えます。 (ログ出力に "良い"と "悪い"を得る方法はありますか?) –

+0

Joshua:アイカボッドが書いたものは、あなたに良いものと悪いものを与えるでしょう。あなたは何が欠けていますか? –

0

ここには、bisected()述語が利用できるようになったbashスクリプト(bisectstate)があります。

(私は色でアップそれはかなりに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

@adamboxによってコメントで示唆したように
5

、これは動作するはずです:

hg log -r "bisect(good) or bisect(bad)" --template "{rev}:{node|short} {bisect}\n" 
+0

これはなぜ、またはどのように受け入れられた答えと異なる/より良いのか説明できますか? –

+0

それらをレンダリングして一緒に混在させる方法はコメント(@adambox)に隠されているので、これは価値があると思います。これは私の答えが何をするのか、そしてはるかに簡単に{bisect}がフォーマットとして利用できるようになりました。私はちょうど「または」を追加したいと思います。まだマークされていない可能性がある現在の回転を見る。 –

+0

現在受け入れられている回答は、ドキュメントのみを指摘しています。 Joshuaが言ったように、彼の質問に対する本当の答え(「コマンドラインでその情報を入手する方法はありますか?」)はadamboxのコメントです。 – Kafu

1

Mercurial 3.8.2では、これを使用することができます。

hg log --template bisect 
関連する問題