17

静的ビューで、古いバージョンのファイルを表示するにはどうすればよいですか?

空のファイル (emptyこの例では呼び出されます) を指定するdiffと、古いバージョンを表示するために転覆できます。

    % cleartool diff -ser empty File@@/main/28

これはかなり醜いハックのように感じます。より基本的なコマンドを見逃していませんか? これを行うためのよりきちんとした方法はありますか?

(構成仕様を編集したくありません。これはかなり面倒です。古いバージョンをたくさん調べようとしています。)

明確化: ファイルのバージョンを stdout に送りたいので、残りの Unix (grep、sed など) で使用できます。ファイルへの要素のバージョンについては、Brian's answerを参照してください。

4

5 に答える 5

15

私はたくさんの古いバージョンを見ようとしています

1 つのファイルの「古いバージョンの束」について話しているのか、複数のファイルの「古いバージョンの束」について話しているのかわかりません。

1 つのファイルの複数の古いバージョンを視覚化するには、そのバージョン ツリー ( ct lsvtree -graph File) を表示し、バージョンを選択して右クリックし、Send To複数のファイルを受け入れるエディター (Notepad++ など) を表示するのが最も簡単な方法です。数回クリックするだけで、それらの古いバージョンが表示されます。
注: CC6.0 または 7.0.1 IFix01 が必要です (7.0.0 および 7.0.1 は、次のエラー メッセージでファイルに「送信」できませんAccess to unnamed file was denied)。

しかし、異なるファイルのいくつかの古いバージョンを視覚化するには、動的ビューを使用し、そのビューの構成仕様を編集することをお勧めします (現在使用しているスナップショット ビューではありません)。 ' ' のような単純な選択規則element * aLabel)


【コメントより:】

ファイルの以前のリビジョンを「猫」にする慣用的な方法は何ですか?

慣用的な方法は、動的ビュー (既存のスナップショット ビューとまったく同じ構成仕様で構成する) を使用することです。

次に、ファイルのさまざまな拡張パスを参照できます (「ディレクトリを変更する」のように) 。

ファイルのブランチのすべてのバージョンを cat したい場合は、次のように入力します。

cd /view/MyView/vobs/myVobs/myPath/myFile@@/main/[...]/maBranch
cat 1
cat 2
...
cat x

' 1'、' 2'、... ' x' は、そのブランチ内のファイルのバージョン 1、2、... x です。


スナップショット ビューの場合、拡張パスにアクセスできないため、「ハック」が有効です。

ただし、ここで 2 つの注意事項:

  • 特定のブランチにあるスナップショット ファイルの以前のすべてのリビジョンをすばやく表示するには、次のように入力します。

(コピーと貼り付けのための 1 行バージョン、Unix 構文:)

cleartool find addon.xml -ver 'brtype(aBranch) && !version(.../aBranch/LATEST) && ! version(.../aBranch/0)' -exec 'cleartool diff -ser empty "$CLEARCASE_XPN"'

(読みやすくするために複数行のバージョン:)

cleartool find addon.xml -ver 'brtype(aBranch) &&
                               !バージョン(.../aBranch/LATEST) &&
                               ! バージョン(.../aBranch/0)'
          -exec 'cleartool diff -ser empty "$CLEARCASE_XPN"'
  • あなたはすぐに出力を少し良くすることができます

(コピーと貼り付けのための 1 行バージョン、Unix 構文:)

cleartool find addon.xml -ver 'brtype(aBranch) && !version(.../aBranch/LATEST) && ! version(.../aBranch/0)' -exec 'cleartool diff -ser empty "$CLEARCASE_XPN"' | ccperl -nle '$a=$_; $b = $a; $b =~ s/^>+\s(?:file\s+\d+:\s+)?//g;print $b if $a =~/^>/'

(読みやすくするために複数行のバージョン:)

cleartool find addon.xml -ver 'brtype(aBranch) &&
                               !バージョン(.../aBranch/LATEST) &&
                               ! バージョン(.../aBranch/0)'
         -exec 'cleartool diff -ser empty "$CLEARCASE_XPN"'
| | ccperl -nle '$a=$_; $b = $a;
               $b =~ s/^>+\s(?:ファイル\s+\d+:\s+)?//g;
               $a =~/^>/' の場合に $b を表示

そうすれば、出力はより良くなります。


以下でBrianが言及した" cleartool get" コマンド (man ページ) は stdout を実行しません:

get コマンドは、ファイル要素のみをビューにコピーします。

UNIX または Linux システムで/dev/hello_world/foo.c@@/main/2は、現在のディレクトリにコピーします。

cmd-context get –to foo.c.temp /dev/hello_world/foo.c@@/main/2

Windows システムで\dev\hello_world\foo.c@@\main\2は、ディレクトリにコピーしC:\buildます。

cmd-context get –to C:\build\foo.c.temp \dev\hello_world\foo.c@@\main\2

catそのため、結果を(またはWindows で)パイプすることで、上記の( ) コマンドtypeの出力で何かを行うことができます。cattype

cmd-context get –to C:\build\foo.c.temp \dev\hello_world\foo.c@@\main\2 | type C:\build\foo.c.temp 
于 2008-10-07T06:03:44.020 に答える
13

これが古いスレッドであることはわかっています...しかし、このスラッシングを未解決のままにすることはできませんでした....

静的ビューには、探しているものを正確に実行する「ct get」コマンドがあります。

cleartool get -to ~/foo File@@/main/28

は、このバージョンのファイルを に保存します~/foo

于 2011-02-10T21:01:53.303 に答える
2

[最初のコメントに基づいて書き直しました]

バージョンを含む Clearcase 内のすべてのファイルは、仮想ディレクトリ構造で利用できます。私は静的ビューにあまり詳しくありませんが、それでも仮想 fs を通過すると思います。更新方法が異なるだけです。

その場合、次のことができます。

   cat File@@/main/28

そのファイル要素を含むディレクトリの正しいバージョンも見つけなければならない場合、それは醜いものになる可能性があります。このアプローチを使用してファイルに加えられた変更の履歴を分析する PERL スクリプトが動作しており、実際にコマンドを実行するために、Windows のコマンド ライン スペースがすぐに不足しました。

于 2008-10-07T04:58:25.073 に答える
1

FileがClearcase要素であり、cat File機能し、ビューが正しく設定されている場合は、次のことを試してください。

cat File@@/main/28

(注:ct shell-がないと、すでにビューにいる場合はこれは必要ありません。)

次のように入力してみてください。

ct ls -l File

上記のような拡張名のファイルが表示されている場合は、拡張名を使用してファイルをキャットできるはずです。

于 2010-10-05T21:50:33.493 に答える
-1

ct shell cat File@@version

于 2009-12-28T05:27:41.633 に答える