ClearCase: файлы с одинаковым oid в разных каталогах - PullRequest
0 голосов
/ 04 мая 2018

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

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

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

cleartool find . -kind slink -print

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

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

1 Ответ

0 голосов
/ 04 мая 2018

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

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

Точнее, проверьте на наличие жесткой ссылки (а не просто мягкая ссылка 'slink')

A hardlink - дополнительная запись в каталоге для существующего файла.
На жестком диске существует только одна копия файла. Если вы изменяете любую копию, вы изменяете все остальные копии. 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 ","
...