Почему 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 не распознает некоторые файлы.