2009-06-12 21 views
5

このPerlの部分は、ClearCaseのファイルが存在しても存在しないことを伝えています。なぜClearCaseにあるファイルがPerlで見つからないのですか?

$x = "PATH/TO/FILE" 
if (-e $x) { 
    print "This file exists on the file system"; 
} else { 
    print "I can't see this file"; 
} 

誰でもこれまで見たことがありますか?

一部のファイルは正常に返されます。私は困惑しました。

クリアケースビューは動的で、UNIX上でホストされています。

このコードは、ファイルが存在し、同じビューの同じフォルダにあるときにはファイルが存在しないことを返します。

+1

$ xとは何ですか?これはClearQuestとどのように関連していますか? -fでテストしようとしましたか? –

+0

$ xはClearQuestのファイル名の文字列です-fは同じ問題を抱えています – Kelvin

+1

行を追加してみることができます 'ls $ x'を出力してください。テストの上に を実行し、それを実行し、それが何を参照してください? –

答えて

3

Clearcaseはディレクトリとして 'ファイル'を保存します。ファイルにcdして、ファイルのすべてのリビジョンを格納するために使用している実際のディレクトリに入ることができます。 OSのフックは通常動作しますが、これはおそらくPerlにいくつかのファイルを認識させない可能性があります。

+0

私はClearCaseを使ったことが一度もありませんが、ファイルの存在を確認したり、バージョンを問い合わせたりするためのAPIはありませんか? –

+2

@Sinan Unur:clearcaseは仮想ファイルシステムを使用します。あなたはそれを普通のもののように扱うことができると思われますが、ときにはそれが崩壊することもあります。 – ysth

+0

@ysthありがとうございます。 –

6

Clearcaseのディレクトリとしての「ファイル」を格納

Aric is trying to tell you ClearCaseのは、それがバージョンパスとファイル名を拡張するため、「拡張」拡張パス名を、使用していることです。だから、ダイナミックビューでは、すべてのファイルがそのバージョン管理パスを明らかにするために説明することができ

:ダイナミックビューで

$ ct ls 
myFile 
$ ct descr -l myFile 
[email protected]@/main/3 

、あなたが実際にそれゆえ、「ディレクトリとしてファイル」(ファイルのバージョンを探索することができますClearQuestの(問題追跡システム)は、ここで使用された場合)一部

$ cd [email protected]@ 
$ ls 
main 
$ cd main 
$ ls 
3 
$ cat 3 
... // content of third version of myFile 

さて、それは活動(のClearCaseのファイルセットの変更セット)を参照します。

ClearCaseでは、ファイル(ClearQuestによって参照されるか、別の方法で取得された)のバージョンが動的ビュー(実際には "rmnamed")で削除されている可能性があります。
ファイルがClearQuestまたはClearCaseアクティビティによって参照される可能性がありますが、ダイナミックビューでClearCaseで直接表示することはできません。
ただし、その拡張パス名は同じ動的ビューでアクセス可能です。

+0

さらに、ディレクトリはバージョン管理されています。そのファイルは、選択された(ビューのconfig specを介して)バージョンのディレクトリに存在しない可能性があります。一般的な場合、中間ディレクトリでも拡張パス構文を使用する必要があります。例えば/ foo/bar @@/main/1/baz.txt @@/main/3' –

関連する問題