2012-03-13 8 views
0

ディレクトリツリーを再帰的に下り、すべてのリポジトリで「クリーン」なhg pull -uを実行するスクリプトを作成したい - ローカル差分がない、発信チェンジセット、またはそれらをリモートと異なるものにする可能性のあるもの。 (スクリプトはリビルドなども行います)ローカルリポジトリが「クリーン」の場合のみhg pull/update

リポジトリが「クリーン」であるかどうかを確認する良い方法はありますか?私はおそらくこれをbashまたはpythonスクリプトからやっていることに留意してください。

答えて

0

hg statusはあなたの友人です。しかし、 "クリーン"が意味することには注意が必要です。ディレクトリ構造内のすべてのファイルがバージョン管理下にあり、いずれも変更されていない場合は、hg statusはコンソール出力を返しません。また、おそらく戻りコードは0です。

これがクリーンな定義と一致しない場合は、さらに注意する必要があります。たとえば、私は一般に、生成されたファイル(バイナリ、PDFなどのLatexなど)をバージョン管理に追加しませんが、それらは私のディレクトリ構造の中にあります。その場合、これらのファイルは「不明」と表示され、hgの戻りコードが異なることが確信しています。

+0

発信チェンジセットがある場合、hgステータスは0を返しますか?更新プログラムがマージする可能性がある場合は、hg pull -uを実行したくありません。私は、(個別に)hgヒントがリモートリポジトリのヒントと一致することを確認する必要がありますか? – jhourback

+0

'hg status'は、ローカル変更があっても常に0を返します。私は、python/bashで出力を解析することができたと思いますが、これはちょっと面倒です。 – jhourback

+0

@jhourback - 1.プル**プルされたチェンジセットをローカルに結合しません2. hg st | wc -lはクリーンなWCで0を返します3. hgの結果はプル可能性と相関しません(read p.1) –

関連する問題