为什么Perl不能find我在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"; }
有没有人见过这个?
一些文件返回正常。 让我难住。
Clearcase视图是dynamic的,托pipe在unix上。
这段代码返回一个文件存在,而另一个不在同一个视图中的同一个文件夹中。
Clearcase将其“文件”存储为目录
Aric试图告诉你的是,ClearCase使用扩展path名 ,“扩展”是因为它扩展了文件名和版本path 。
因此,在dynamic视图中,可以描述任何文件以显示其版本控制path:
$ ct ls myFile $ ct descr -l myFile myFile@@/main/3
在dynamic视图中,您可以实际浏览文件的版本(因此“作为目录的文件”)部分
$ cd myFile@@ $ ls main $ cd main $ ls 3 $ cat 3 ... // content of third version of myFile
现在,如果在这里使用了ClearQuest(问题跟踪系统),它将引用ClearCase的活动(更改文件集)。
但是对于ClearCase,在dynamic视图(实际上是“rmnamed”)中删除了文件的一个版本 (由ClearQuest引用或者通过其他途径获得)。
意思是一个文件可能被ClearQuest或某个ClearCase活动引用,但不能直接在dynamic视图中使用ClearCase。
但是,它的扩展path名仍然可以在同一个dynamic视图中访问。
Clearcase将其“文件”存储为目录。 你可以cd进入一个文件,并进入它正在使用的实际目录来存储文件的所有修订; 虽然操作系统挂钩通常工作,也许这导致Perl无法识别一些文件。