構成仕様は、各更新時、チェックアウト時、およびチェックイン時にルールを適用します (しかし、あなたが思っているようにはなりません)。
チェックインすると、チェックアウトされたブランチに新しいバージョンが作成されます (こちら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 番目の構成仕様に に関するルールがない場合branch1、test.cは引き続き として選択され/main/1ます: で作成されたバージョンがないbranch2ためelement * /main/LATEST、適用できる唯一のルールです。