Я столкнулся с чем-то, что поставило меня в тупик.

У нас есть несколько файлов, которые идентичны во всех отношениях ( включая их oid - так что они определенно не злые близнецы), но расположены в двух разных каталогах. Если посмотреть на свойства элемента, они оба содержат один и тот же путь, но их также можно найти во втором каталоге.

Моя первая мысль заключалась в том, что между ними (или одним из их родительских каталогов) должна быть символическая ссылка. Я использовал следующую команду в корне VOB, чтобы найти их:

cleartool find . -kind slink -print

Однако он не возвращает результатов.

Кто-нибудь знает, что здесь происходит?

1
Jozef 4 Май 2018 в 04:32

1 ответ

Лучший ответ

Поскольку в ClearCase папки отвечают за запись списка своих элементов, опишите родительские папки этих дублированных файлов.

Один и тот же файл может быть записан в две разные папки.

Точнее, проверьте жесткую ссылку (а не просто программную ссылка "слинк")

Жесткая ссылка - это дополнительная запись в каталоге для существующего файла.
На жестком диске существует только одна копия файла. Если вы изменяете любую копию, вы изменяете и все остальные копии. ClearCase делает это в структуре каталогов через тот же индексный дескриптор и увеличивает счетчик ссылок на 1.

Обратите внимание, что при использовании find -all сообщается только об одном экземпляре элемента, даже если одна или несколько жестких ссылок VOB указывают на элемент. Отображается либо имя элемента, либо одна из жестких ссылок VOB.

Подробнее см. «Определение жестких ссылок в VOB».

используйте cleartool find, выполняемое следующим образом из корня VOB:

cleartool find -all -exec 'cleartool describe -fmt "%[aliases]ACQp\n" $CLEARCASE_XPN'

Этот вывод предоставит вам список всех элементов в VOB, и если данный элемент имеет более одной жесткой ссылки, другая жесткая ссылка будет отображаться после запятой в списке.
Результат будет выглядеть примерно так:

"/vobs/TestVOB1@@/main/dir1/7/1.txt", "/vobs/TestVOB1@@/main/dir1/7/1.foo.txt"

Наконец, следующая команда предоставит вам только элементы с жесткими ссылками:

cleartool find -all -exec 'cleartool describe -fmt "%[aliases]ACQp\n" $CLEARCASE_XPN' | grep ","
1
VonC 4 Май 2018 в 04:42