構成仕様は、各更新時、チェックアウト時、およびチェックイン時にルールを適用します (しかし、あなたが思っているようにはなりません)。
チェックインすると、チェックアウトされたブランチに新しいバージョンが作成されます (こちらbranch_1
)。その新しいバージョンは、新しい構成仕様によって選択さ
れ
ない可能性がありますが、それがチェックアウトされたブランチは、その新しい構成仕様によって変更されません。
既にチェックアウトされている (で)中に変更branch1
しても、何も変更されません。でチェックインされます。branch2
test.c
branch1
branch_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.c
onの最初のチェックイン後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
、適用できる唯一のルールです。