Next: , Previous: Creating and Removing, Up: Merging with patch


10.5 パッチファイルのタイムスタンプを更新

patchがファイルを更新するとき,通常ファイルの最終更新のタイム スタンプを現在の日時に設定します.ソフトウエア配布物の追跡に patchを使用している場合,これでmakeは,パッチをあて たファイルが古いものだと間違って推定するはずです.例えば, syntax.csyntax.yに依存していてpatchsyntax.cを更新してからsyntax.yを更新する場合, syntax.yが更新されているにもかかわらず,syntax.cはそれより 古いものになります.

-Z--set-utcオプションで,patchはパッチをあ てたファイルの編集時刻とアクセス時刻を,周りの文を使用した差分のヘッダで 与えられるタイムスタンプに設定します.周りの文を使用した差分のヘッダに, タイムゾーンが指定されていない場合,Coordinated Universal Time(gmt として知られていることが多いutc)だと仮定します.

-T--set-timeオプションは,-Z--set-utcのように動作しますが,周りの文を使用した差分のヘッダの タイムスタンプを,utcの代わりにローカルタイムを使用していると仮定し ます.ローカルタイムを使用しているパッチは,他のタイムゾーンにいる人が簡 単に使用することが不可能で,ローカルなタイムスタンプは,ローカルな時計が 夏時間に調整されている間に戻ってしまうので,このオプションは推奨されませ ん.周りの文を使用した差分のヘッダがタイムゾーンを指定している場合,この オプションは,-Z--set-utcと等価です.

patchは通常,ファイルのオリジナルの最終更新のタイムスタンプが 差分のヘッダで与えられるタイムスタンプとマッチしない場合や,ファイルの内 容がパッチに正しくマッチしない場合,ファイルのタイムスタンプで設定されて いるものにすることを差し控えます.しかし,-f--force オプションが設定されている場合,ファイルのタイムスタンプはおかまいなしに 設定されます.

現在のdiff書式の制限のため,patchで内容が変更されて いないファイルのタイムスタンプを更新することは不可能です.また,ファイル のタイムスタンプを現在の日時以外に設定する場合,後にmakeの呼び 出しで,パッチをあてたファイルのタイムスタンプで混乱しないように,パッチ をあてるファイルに依存するすべてのファイルも(例えば‘make clean’で) 削除するべきです.