为什么Perl找不到我在ClearCase中的文件?

Kel*_*vin 6 perl clearcase

这篇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";
}
Run Code Online (Sandbox Code Playgroud)

谁看过这个吗?

有些文件返回正常.让我难过.

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

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

Von*_*onC 7

Clearcase将其"文件"存储为目录

什么ARIC是想告诉你的是,ClearCase的使用扩展的路径名,"扩展",因为它扩展的文件名版本路径.

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

$ ct ls
myFile
$ ct descr -l myFile
myFile@@/main/3
Run Code Online (Sandbox Code Playgroud)

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

$ cd myFile@@
$ ls
main
$ cd main
$ ls
3
$ cat 3
... // content of third version of myFile
Run Code Online (Sandbox Code Playgroud)

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

但是使用ClearCase,文件的一个版本(由ClearQuest引用或通过另一种方式获得)很可能已在动态视图中删除(实际上是"rmnamed").
意味着文件可能由ClearQuest或某些ClearCase活动引用,但在动态视图中不能直接使用ClearCase查看.
但是,其扩展路径名仍可在同一动态视图中访问.


Ari*_*yck 3

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

  • @Sinan Unur:clearcase 使用虚拟文件系统;你“应该”能够像对待普通人一样对待它,但有时这会失败。 (2认同)