1

File1次の 2 つのファイルがあるとします。File2

以下のバージョン ツリー図では、構成仕様によって選択された作業コピー*のバージョンを示しています。

バージョン ツリー:

File1 は開発中Branch2ですが、現在ブランチにマージされていますmain

| main |
   |
  (0)----| Branch2 |
   |          |
   |         (0)
   |          |
  (1)*<------(1)     

File2 はBranch2複数のリビジョンでオンになっています

| main |
   |
  (0)----| Branch2 |
              |
             (0)
              |
             (1)
              |
             (2)*

構成仕様:

#Pick up Branch2 LATEST unless it has an outgoing merge hyperlink type
element * {version(.../Branch2/LATEST)&&!hltype(Merge,->)}    
element * /main/LATEST

私ができるようにしたいのは、Branch2現在見ているファイルだけを見つけることです。

私はこれを試しました:

cleartool find . -cview -type f -version "brtype(Branch2)" -print

オンになっているすべてのファイルのすべてのバージョンを返しますBranch2

.\File1@@\main\Branch2\0
.\File1@@\main\Branch2\1
.\File2@@\main\Branch2\0
.\File2@@\main\Branch2\1
.\File2@@\main\Branch2\2

だけ欲しい

.\File2@@\main\Branch2\2

結果として作業コピーのバージョンcleartool findのみを返すコマンドは何ですか? File2複数ステップのプロセスよりも、1 行のコマンドの方が好ましいと思います。

明確にするために

構成仕様に従って作業コピーとして選択されて Branch2 いるリストされたファイルのみが必要です。.\File2@@\main\Branch2\2がオンになってBranch2おり、作業コピーとして選択されています。 .\File1@@\main\1私の作業コピーとして選択されていますが、これはオンになってBranch2おらず、リストされるべきではありません。

4

2 に答える 2

1

LATEST構成仕様が特定のブランチの LATEST を実際に選択するという保証がないため、ブランチ内のファイルに対して" " のような特定のバージョンを照会するのは間違っています。

正しい方法は要素です:cleartool find

  • 現在のビュー ( cview)
  • そのブランチにバージョンがある ( brtype)

つまり、次のことを意味します。

cd /path/to/your/view/yourVob
cleartool find . -cview -type f -ele "brtype(Branch2)" -print

それはまだあなたに与えるでしょうが、それはそれを唯一File1のバージョンとして与えるでしょう(ではない)/mainBranch2

次に、必要なものを簡単に除外できます。

cleartool find . -cview -type f -ele "brtype(Branch2)" -print | grep Branch2

LATESTこれはまだ 1 つのコマンドであり、 ofを選択しているとは想定していませんBranch2
で任意のバージョンを選択している場合はBranch2、その検索の結果になります。

于 2013-09-13T05:17:10.737 に答える
-1

これにより、ブランチの最新バージョンが取得されます

cleartool find . -type f -ele "version(.../Branch2/LATEST)" -print
于 2013-09-13T02:34:32.263 に答える