Previous: Making Snapshots, Up: Snapshots


12.7.7.2 スナップショットの弱点

VCのスナップショット機能は、RCSの名前付きコンフィギュレーションサポート (named-configuration support)をモデルにしています。 RCS固有の機能を使っているため、RCSを使って作ったVCのスナップショット は、VCを使わなくても見えます。

SCCSでは、VC自身でスナップショット機能を実装しています。 VCが使うファイルには、名前/ファイル/版番号の3つ組みが含まれます。 これらのスナップショットは、VCを使ったときだけ見えます。

スナップショットはチェックインした版の集合です。 ですから、スナップショットを作るときには、 すべてのファイルをチェックインしてあり、 しかもロックしていないことを確認してください。

ファイルを改名したり削除すると、スナップショットに問題を生じます。 これはVCに固有の問題ではなく、版管理システムに一般的な設計上の問題で、 まだ誰も満足ゆく解決をできていません。

登録されたファイルを改名するなら、 そのマスタファイルも一緒に改名する必要があります (コマンドvc-rename-fileは自動的にこれを行う)。 SCCSを使っているならば、ファイル名を新しい名前にして スナップショットの記録も更新する必要があります (vc-rename-fileはこれも行う)。 記録された名前ではもはや存在しないマスタファイルを参照する 古いスナップショットは無効です。 VCは(古い名前では)取り出せません。 スナップショットを手で更新する方法を説明するために RCSやSCCSを詳しく説明することは、本書の範囲を越えています。

vc-rename-fileを使えば、 取り出し操作に使える程度にはスナップショットを保てますが、 すべての問題を解決できるわけではありません。 たとえば、プログラムのいくつかのファイルでは、 名前で他のファイルを参照しているでしょう。 少なくとも、makefileでは、改名したファイルを指しているでしょう。 古いスナップショットを取り出すと、 改名したファイルは新しい名前で取り出しますが、 makefileで使っている名前ではありません。 ですから、取り出しただけではプログラムは動かないでしょう。