2016-03-30 10 views
0

:-qHG着信表示Mercurialのコマンドを実行するリポジトリのルートパス

におけるHGは、以下のようなリストを生成します。 123:b64543 124:ef312a

このコマンドは複数のリポジトリで実行されます。リポジトリパスを上記の出力に追加してレポを識別するにはどうすればよいですか?コマンド 'hg root'を実行するとその情報が得られますが、リポジトリに新しいチェンジセットがある場合にのみ、そのパスを知りたいとします。私たちはテンプレートを見ましたが、正しい情報を与えた変数を見つけることができませんでした。

任意のヘルプをお試しください。

答えて

1

hg incomingからルートパスを追加するための最も簡単な解決策は、&&で2つのコマンドを連結することである(仮定あなたは)Unixのを使用している:

hg in -q && hg root 

の着信変更がある場合hg incomingは0を返しますので、これは動作しますが、1そうでない場合は(または非ゼロ値の誤差があった場合)。

出力のより洗練された操作のために、sedは通常それを行うことができます。たとえば、次のコマンドは、出力へのルートをの先頭に追加します。

hg in -q | sed -e "1i$(hg root)" 
0

私はビットbashに頼って、テンプレート内でhg rootを呼び出します。すべてのディレクトリは、現在の(そうでなければ異なるDIRSのリストを与える)のサブディレクトリであると仮定すると:

for i in *; do [ -d $i/.hg ] && hg incoming -R$i --template "$(hg root -R$i) {rev}:{node|short}\n"; done