Почему 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";
}

Кто-нибудь видел это раньше?

Некоторые файлы возвращаются нормально. Получил меня в тупик.

Прозрачный вид является динамическим, размещается на Unix.

Этот фрагмент кода возвращает, что файл существует, а другой нет, когда они находятся в одной папке в одном представлении.

2 ответа

Clearcase хранит свои "файлы" в виде каталогов

Арик пытается сказать вам, что 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 или полученная другим способом) может быть очень хорошо удалена в динамическом представлении (на самом деле "rmonym").
Это означает, что на файл может ссылаться ClearQuest или какое-либо действие ClearCase, но он не может быть виден непосредственно с ClearCase в динамическом представлении.
Однако его расширенный путь будет по-прежнему доступен в том же динамическом представлении.

Clearcase хранит свои "файлы" в виде каталогов. Вы можете перейти в файл и перейти в тот каталог, который он использует для хранения всех ревизий файла; Хотя хуки ОС обычно работают, возможно, это приводит к тому, что Perl не распознает некоторые файлы.

Другие вопросы по тегам