ClearCase での操作の原子性はファイル レベルであり、svn変更セット(つまり「リビジョン」) に厳密に相当するものはありません。
ClearCase の変更セットに最も近いものは、(UCM での) アクティビティの概念、またはファイルのコレクションに設定されたラベルです (UCM ベースラインは、事前定義されたセットで移動できないラベルを表すため、実際にはより近いものですファイル -- UCM コンポーネント --)
さて、UCMであろうとなかろうと、私はお勧めします:
- チェックインを行うブランチをロックします (そうすれば、vob には引き続きアクセスでき、「アトミック」操作中にその特定のブランチに他のバージョンを追加しようとする人は誰もいません)。
- チェックインを行います
- ブランチのロックを解除
問題が発生した場合、ブランチがまだロックされている間はct rmver
、追加されたバージョンを ' ' することができます。(注: 注意して使用してください: armver
は元に戻せません)
注 1: UCM で作業していない場合は、チェックインしたすべてのバージョンを記録して、それらを確認できるようにする必要があります。
注 2: 「ブランチをロックする」と言ったときは、もちろん「あなた以外の全員をロックする」という意味でした ( -nusers yourLogin
)。そうすれば、あなただけがチェックインを行うことができます (これは、作業しているブランチ (メインまたは別) の LATEST 内のすべてのファイルに適用されます)。
このアプローチの問題は、クライアント (ブランチの LATEST で動的ビューを持つ他のユーザー) がアトミック トランザクション中に何を見るかということです。
これらは動的ビューであるため、これらのファイルが 1 つずつチェックインされている間、チェックインされたファイルが表示されます。特に 200 個のファイルがあり、すべてのプロセスに 1 分以上かかる場合は、これは適切ではない可能性があります。
1 つの解決策は、これらのクライアント ビューで構成仕様を次のように設定することです。
element * .../myBranch/FREEZED_LATEST
element * .../myBranch/LATEST
アトミックな変更セットのコミットを行っていない場合、ラベルFREEZED_LATEST
は存在せず、すべてのクライアント ビューは LATEST と表示されます。すべてのチェックインは、すぐに全員に表示されます。
ただし、アトミックコミット中に次のことができます。
- 最初に、現在のすべてのファイルにラベル FREEZED_LATEST を設定します (現在は LATEST です)
。つまり、すべてのクライアントは、アトミック コミット中に特定のバージョンのみを表示します。
- プロセスを実行します(最後まで、またはロールバックします。どちらの方法でも、ブランチはロックされており、クライアントの構成仕様にはまだ同じ「凍結された」コンテンツが表示されます)
- ラベルを削除し
FREEZED_LATEST
ます (すべてのクライアントは、アトミック操作の結果として新しい LATEST を確認し続け、独自のチェックアウトで新しいバージョンを作成できます)