1

ClearCaseでラベルを作成し、最新バージョンにラベルがないファイルの最新バージョンにラベルを適用するAntスクリプトを作成しようとしています。

私はこれを使用してラベルを作成しています:

<ccmklbtype typename="${label.name}" failonerr="false" 
 ordinary="true" comment="${label.comment}"/>

これを使用してラベルを追加すると、次のようになります。

<ccmklabel viewpath="${view.path}" comment="${label.comment}" recurse="true"
 typename="${label.name}" replace="false" version="\main\${side.branch}\LATEST"/>

もちろん、ビューパス内のすべてにラベルを追加します。私の望ましい動作は、アイテムに最新バージョンのラベルがまだない場合にのみラベルを追加することです。

コマンドプロンプトを使用して目的の操作を実行できますが、Antを使用して実行できるかどうかを確認しようとしています。

誰かアイデアはありますか?

まだ名前が付いていないものにラベルを付ける方法はないようです。代わりに、以前に使用したラベルの1つでまだラベル付けされていない場合は、ANTでexecブロックを使用するように設定しました。

<target name="add_labels" description="Look for LATEST code that does not have a previous version label already on it.  Skip the 0 generation as that is brought in from a previous release.">
<exec executable="cleartool" dir="${view.path}">
<arg value="find" />
<arg value="." />
<arg value="-ver" />
<arg value="version(\main\${side.branch}\LATEST)&amp;&amp;!version(\main\${side.branch}\0)${history.check}" />
<arg value="-exec" />
<arg value="cleartool mklabel -replace ${label.name} %CLEARCASE_XPN%" />
</exec>
</target>

テストで動作するようです。

4

1 に答える 1

2

マニュアル ページをccmklabel見ると、次のように表示されます。

replace bool
の場合true、同じブランチの同じタイプのラベルの置換を許可します。
デフォルトは ですfalse

したがってreplace=true、ファイルに最新バージョンのラベルがない場合、そのバージョンに配置 (または移動) されLATESTます。


OP ruminatorの場合、彼は、バージョンにまだラベルがない場合にのみラベルを追加したいと考えています。

2 つのアプローチが可能です。

  • ccmklabelラベルを付けたいバージョンだけが既に選択されているビューで。構成仕様で使用できる
    唯一のバージョン セレクター\main\${side.branch}\'{!lbtype(MY_TEST)}はであり、' ' というラベルが付いていない最後のバージョンを選択するため、実行するのは困難です (これMY_TESTは最初の選択基準に正確には適合しません)。

  • Ant スクリプトで ccmklabel を使用せず、insteald を直接 cleartool find ディレクティブを呼び出します (これはより正確であり、ビュー構成仕様よりも多くのバージョン セレクターを組み合わせることができます)。
    それが、OP ruminatorが質問の更新で示していることです。

LATEST検索クエリは、適切なラベルがないバージョンに焦点を当てています。

<exec executable="cleartool" dir="${view.path}">
  <arg value="find" />
  <arg value="." />
  <arg value="-ver" />
  <arg value="version(\main\${side.branch}\LATEST)&amp;&amp;!version(\main\${side.branch}\0)${history.check}" />
  <arg value="-exec" />
  <arg value="cleartool mklabel -replace ${label.name} %CLEARCASE_XPN%" />
</exec>
于 2012-08-10T20:20:09.847 に答える