3

ClearCase についてちょっとした質問があります。お願い助けて!構成仕様はいつ機能し始めますか? チェックアウトまたはチェックインをクリックすると?私は持っていてtest.c、構成仕様があります

element * CHECKEDOUT
element * .../branch_1/LATEST
element * /main/LATEST -mkbranch branch_1

次に、を変更test.cしてから、構成仕様を変更します。

element * CHECKEDOUT
element * .../branch_2/LATEST
element * /main/LATEST -mkbranch branch_2

次に、チェックインするtest.cと、次のものが作成されまし/main/branch_1/1た。しかし、なぜ???

4

1 に答える 1

3

構成仕様は、各更新時、チェックアウト時、およびチェックイン時にルールを適用します (しかし、あなたが思っているようにはなりません)。

チェックインすると、チェックアウトされたブランチに新しいバージョンが作成されます (こちらbranch_1)。その新しいバージョンは、新しい構成仕様によって選択さ
れ ない可能性がありますが、それがチェックアウトされたブランチは、その新しい構成仕様によって変更されません。

既にチェックアウトされている (で)中に変更branch1しても、何も変更されません。でチェックインされます。branch2test.cbranch1branch_1

branch1のチェックイン時にバージョンを作成するtest.cので (2 番目の構成仕様を使用しても)、以降のすべてのチェックアウト/チェックインは の同じブランチで行われることに注意する必要がありますtest.c。理由は次のとおりです。

  • ルールelement * branch_1/LATESTはそのブランチに新しいバージョンを保持します
  • ルールelement * /main/LATEST -mkbranch branch_2は、メインからチェックアウトされたバージョンに対してのみ有効です (そして、test.c はもはや on/mainではなく、 on branch1: です/main/branch1) 。

この構成仕様により、すべての新しいバージョン ( test.conの最初のチェックイン後branch1) が で実行されるようになりbranch2ます。

element * CHECKEDOUT
element * .../branch_2/LATEST
element * ../branch_1/LATEST  -mkbranch branch_2
element * /main/LATEST -mkbranch branch_2

ルールの順序は重要です。適用できる最初のルールが「勝つ」からです (つまり、ポーターは無視されます)。「 2 つのブランチからラベル付きファイルを表示する構成仕様
」の構成仕様の具体例を参照してください。


前に説明したように、 の最初のチェックイン後、test.cに新しいバージョンが作成されることに注意してくださいbranch1

しかし、2 番目の構成仕様は/main/1ではなくを選択します/main/branch1/1

これは、2 番目の構成仕様の規則が正しくないためです。

element * branch_1/LATEST

これは正しいバージョンを選択します:

element * .../branch_1/LATEST

ただし、2 番目の構成仕様に に関するルールがない場合branch1test.cは引き続き として選択され/main/1ます: で作成されたバージョンがないbranch2ためelement * /main/LATEST、適用できる唯一のルールです。

于 2013-04-14T15:55:57.753 に答える