パッチログ

プロジェクトツリーが他のバージョンからのチェンジセットを適用 すると、「そのチェンジセットはもう取り込んだ」という意味のログが、 {arch}管理配下に記録される。これをパッチログと言う。パッチログは通 常のファイルで、中には RFC822形式に準じたいくつかの情報があり、人 間への手がかりとなるが、GNU arch がシステム的に考慮するのは「パッ チログが存在するか、否か」だけだ。つまり管理領域に A/C--B--V--R が 存在すればこのチェンジセットはすでに受け取っているのであり、存在し なければ受け取ってはいない。それだけだ。プロジェクトツリーをコミッ トすると、パッチログはアーカイブバージョン中のチェンジセットにも記 録され、永続的なものとなる。

GNU arch のマージコマンドは常に、マージするチェンジセットが すでにパッチログとして記録されているチェンジセットと一致しないかど うかを確認し、パッチログが存在しない場合に限りそれを適用する。これ によって同じチェンジセットを二度以上適用してしまう、いわゆる重複マー ジの問題を回避することができる。

パッチログはチェンジセットにも含まれるが、その当のチェンジセッ トに対応したパッチログだけではなく、そのチェンジセットが間接的に受 け取ったパッチログも含んでいる。たとえば C1--B1--V1--R1 というリビ ジョンで、Cx--Bx--Vx--Rx と、Cy--By--Vy--Ry という 二つのパッチログを受け取り、C1--B1--V1--R1+1 というリビジョンをコ ミットしたとしよう。するとチェンジセット C1--B1--V1--R1+1 には、 この三つのチェンジセットに対応したパッチログがすべて含まれる。 このチェンジセット C1--B1--V1--R1+1 を受け取った Cz--Bz--Vz--Rz+1 には、自分自身もふくめて四つのパッチログをプロジェクトツリーに追加 することになる。このようなパッチログの授受の連鎖によって、一度適用 したチェンジセットを、もう一度同じバージョンから受け取ることを回避 できるだけではなく、めぐりめぐって別のバージョンから受け取ることも 回避できる。

コミットとパッチログとの間の関係パッチログの不完全性の説明パッチログを調整するコマンドの説明