ClearCase 構成仕様で変数を使用することはできますか?
-
22-08-2019 - |
質問
たとえば、次のように書く代わりに:
element * .../my_branch_01/LATEST
element * .../base_branch/LATEST -mkbranch my_branch_01
次のようなことを書きたいと思います。
MY_BRANCH=my_branch_01
element * .../%MY_BRANCH%/LATEST
element * .../base_branch/LATEST -mkbranch %MY_BRANCH%
これも可能でしょうか?正しい構文は何ですか?
解決
ClearCase でこれを行う唯一のネイティブな方法は、 属性 以内 構成仕様.
による バージョンセレクター ルールを使用すると、たとえば属性に基づいて「クエリによる選択」ルールを作成できます。
element * ...{MY_ATTRIBUTE_NAME=="aValue"}
を選択するでしょう LATEST
属性 ' を持つ任意のブランチ上のバージョンMY_ATTRIBUTE_NAME
' と 'aValue
' 初期化。
つまり、古いブランチの属性値を変更して、それを新しいブランチに配置する必要があります。cleartool setcs
' もう一度ビューを確認すると、新しいバージョンの選択に基づいて新しいコンテンツが表示されるはずです。
あまり単純ではありませんが、うまくいく可能性があります。 mkbranch部分を除く (固定の名前が必要です)。
に関して GeekCyclistさんの答え, 、いくつかのコメント:
共通の構成仕様を含めるソリューションは、Base ClearCase ソリューションでも機能しますが、次の点が異なります。
- 関係するすべての開発者が利用できる共有に存在する必要がある
- の セット これは、view_server を使用してそのキャッシュをフラッシュし、現在の構成仕様を再評価するために実際に必要です。この構成仕様は、ビュー ストレージ ディレクトリのファイル config_spec に格納されています。これも:
- 非絶対的な指定による時間ルールの評価 (たとえば、今、火曜日)
- –config ルールを再評価し、以前とは異なる派生オブジェクトを選択する可能性があります
- インクルードルールで指定されたファイルの再読み取り
- 他のすべての開発者は、共通に含まれる構成仕様ファイルが変更されたときに通知を受ける必要があります (ClearCase にはネイティブ通知は含まれていません)。
1 つの「環境」が必要な場合 (つまり、(異なるブランチに応じて) 可変コンテンツを持つ 1 つの「ビュー」またはワークスペース)、異なるビュー (それぞれ独自の構成仕様を持つ) を指すシンボリック リンク (または Windows サブストア) を定義する必要があります。
そうすれば、特定の設定に関連付けられた構成仕様を変更するには、リンク (または置換されたパス) を変更するだけで済みます。 修理済み パス。
他のヒント
これは、私はClearCaseの中で働いていたので、(私たちはSubversionのに切り替え)しばらくして、私が正しくリコール場合のClearCaseにこのネイティブを行うための方法はありませんです。
あなたは使用または書き込みあなたのspecファイルを作成するスクリプトジェネレータをして、その実際のスペックで含めることができます:
element * CHECKEDOUT
include scripted_file_output
[実行
cleartool setcs -current
このアプローチの問題は、私はインクルードはスペックが再生され、あなたがMY_BRANCHの値を変更するたびにcleartoolのsetcsを実行する必要が含ま信じることです。