Mercurial リポジトリを想定しますfoo
。さらに、make
そこから実行されるジョブは、リポジトリ内で何かが変更されるたびに、リビジョンから までcrontab
のすべてのバンドルを更新することになっていると仮定します。リポジトリの作業ディレクトリの一部でもあると仮定しましょう。0
tip
GNUmakefile
foo
foo/.hg
実行するかどうかを決定するために依存関係として依存できるファイルはどれhg bundle
ですか?
私はあなたが見るよりも悪いことをすることができると思います.hg/store/00changelog.i
。これには、リポジトリ内のチェンジセットメタデータのインデックスが含まれます(非常に小さいリポジトリの場合、対応するデータも含まれます)。これは、作業ディレクトリの内容については何も言っていないことに注意してください。ただし、完全なバンドルが必要な場合は、それは問題ではありません。
.hg/requires
ただし、これはファイルの内容によって異なります。特に、リポジトリには少なくともstore
フラグが必要です。
内部のファイルを直接操作することは正しいことで.hg
はないと思います(tm)
「...リポジトリ内で何かが変更されるたびに」新しいチェンジセットがある場合、または古いチェンジセットIDが変更される可能性があります(履歴が書き換えられますか?)。この場合、ネイティブの Mercurial コマンドの出力が変化し、以前の実行結果と現在の実行結果を比較して選択できます。
hg id -i
たとえば、commit-hook では、リポジトリの作業ディレクトリ内の (無視された) ファイル、または後で crontab ジョブをチェックする一部のファイルに書き込むことができます。