注意: VOB ハード リンクによるデータの損失
ハード リンクされたエレメントの複数のインスタンスをスナップショット ビューにロードする場合、そのファイルの 1 つのインスタンスだけをチェックアウト、変更、チェックインしてください。ハード リンクされたファイル (またはシンボリック リンクされたディレクトリの下にあるファイル) をチェックインすると、ビュー内のほかのすべてのインスタンスが更新されるため、同じファイルの複数のコピーを変更するとデータが失われることがあります
(チェックインのためにファイルのインスタンスが更新されるとき、ハイジャックされたファイルの名前は、更新の前に filename.keep に変更されます。)
たとえば、次の一連の手順を行うと、データが失われます。
- src ディレクトリ内のハード リンクされたファイル util.h をチェックアウトする。
- src ディレクトリ (checkout コマンドを発行した場所) 内のみの util.h の読み取り専用属性 (または許可) が削除される。
- src ディレクトリ内の util.h を変更するがチェックインしない。
- このとき、チェックアウトしたファイルの記録が失われます。
次に、tmp ディレクトリ内の util.h を、読み取り専用属性を削除して変更する。
- util ディレクトリ内の util.h をチェックインする。
src ディレクトリ内の util.h をチェックアウトして変更したにもかかわらず、
temp ディレクトリ内の util.h をチェックインできてしまいます。これは、VOB ハード リンクでの Linux と UNIX システムの tmp/util.h は src/util.h の別名にすぎず、Windows システムの tmp¥util.h は src¥util.h の別名にすぎないからです。
- src ディレクトリの util.h (Linux と UNIX システムでは src/util.h、Windows システムでは src¥util.h) に対して行った変更は、チェックイン時に失われます。これは、エレメントをチェックインすると、重複ファイルのすべてのコピーが更新されるからです。
ヒント: VOB 内のエレメントをチェックアウトしているので、(属性を変更しても)
util.h のコピーはハイジャックされたとは見なされません。