6

这段 Perl 告诉我 ClearCase 中的文件不存在时;

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

有没有人见过这个?

一些文件返回正常。把我难住了。

Clearcase 视图是动态的,托管在 unix 上。

当它们位于同一视图的同一文件夹中时,这段代码返回一个文件存在而另一个文件不存在。

4

2 回答 2

7

Clearcase 将其“文件”存储为目录

Aric 试图告诉您的是,ClearCase 使用扩展路径名,“扩展”,因为它使用版本路径扩展文件名。

因此,在动态视图中,可以描述任何文件以显示其版本控制路径:

$ ct ls
myFile
$ ct descr -l myFile
myFile@@/main/3

在动态视图中,您实际上可以探索文件的版本(因此称为“文件即目录”)部分

$ cd myFile@@
$ ls
main
$ cd main
$ ls
3
$ cat 3
... // content of third version of myFile

现在,如果在这里使用 ClearQuest(问题跟踪系统),它将引用 ClearCase 的活动(文件集的更改集)。

但是使用 ClearCase,文件的一个版本(由 ClearQuest 引用或通过其他方式获得)可以很好地在动态视图中被删除(实际上是“rmnamed”)。
这意味着文件可能被 ClearQuest 或某些 ClearCase 活动引用,但在动态视图中不能直接通过 ClearCase 可见。
但是,它的扩展路径名仍然可以在同一个动态视图中访问。

于 2009-06-12T20:34:02.967 回答
3

Clearcase 将其“文件”存储为目录。您可以 cd 进入一个文件并进入它用于存储文件所有修订的实际目录;虽然操作系统挂钩通常可以工作,但也许这会导致 Perl 无法识别某些文件。

于 2009-06-12T16:26:57.273 回答