によるとhg help push、
プッシュが成功した場合は 0 を返し、プッシュするものが何もない場合は 1 を返します。
今、あごひげはありませんが、これは「Unixy」のやり方とは思えません。
例えば
set -e
hg push -R ~/some-repo
# never get here if push aborts for any reason
# ...OR if some-repo has no changes
exit 0
hg push特に情報コマンドhg outがまったく同じステータスコードを返すため、なぜこのように動作したいのか想像できません。
だから私の質問は、hg push実際にいつ失敗したかをどうやって知ることができますか? ストリーム出力を読み取る必要がありますか?
(ちなみに、2012 年 1 月に誰かがこの方法では機能していないと指摘し、ドキュメントではなくプログラムを修正しました。)
(また、問題があることも知ってset -e います。これはそれについてではありません。)