这篇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上。
这段代码返回的是一个文件存在而另一个文件存在于同一视图中的同一文件夹中。
答案 0 :(得分:6)
Clearcase将其“文件”存储为目录
ClearCase使用扩展路径名,“扩展”是Aric is trying to tell you,因为它使用版本路径扩展文件名。
因此,在动态视图中,可以描述任何文件以显示其版本控制路径:
$ 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显示。
但是,它的扩展路径名仍可在同一动态视图中访问。
答案 1 :(得分:3)
Clearcase将其“文件”存储为目录。你可以cd进一个文件,进入它用来存储文件的所有修订版的实际目录;虽然操作系统挂钩通常有效,但这可能导致Perl无法识别某些文件。