ClearCase Config Spec: загружать только файлы с определенной меткой из определенного каталога

Предположим, у меня есть VOB foo /. В этом VOB находится панель каталогов /, содержащая помеченные и немеченые файлы. Но bar / - не единственный каталог в foo /, но во всех остальных каталогах нет помеченных файлов. Есть ли способ написать спецификацию конфигурации со следующим поведением:

  • загрузить все проверенные элементы
  • для каждого каталога кроме foo / bar / загрузить основную / ПОСЛЕДНЮЮ версию
  • для каталога foo / bar / load только файлы с этой меткой, если эта метка не существует, не загружайте основную / ПОСЛЕДНЮЮ версию

Нормальная спецификация конфигурации будет

element * CHECKEDOUT
element * LABEL
element * /main/LATEST
load /foo

Но, очевидно, тогда он загрузит также немаркированные версии в / foo / bar. Заранее спасибо.


person dudenr33    schedule 02.03.2015    source источник


Ответы (1)


Вы можете добавить пути в свою конфигурационную спецификацию, чтобы применить определенное правило выбора к указанным путям:

element * CHECKEDOUT
element foo/bar/... MYLABEL
element foo/bar/... -none
element * /main/LATEST
load /foo

Я бы порекомендовал сначала протестировать эту спецификацию конфигурации в динамическом представлении, а затем применить ее к представлению моментального снимка.

Обозначение из трех точек (foo/bar/...) означает: папку bar и все ее подэлементы.

Обратите внимание, что при этом не всегда будут отображаться все элементы, помеченные MYLABEL: если у одной из родительских папок нет метки MYLABEL, никакой другой вложенный элемент не будет виден, доступен и выбрано.
Это особенно верно здесь, учитывая правило element foo/bar/... -none, которое существует для предотвращения выбора /main/LATEST для foo/bar (если нет MYLABEL)

Здесь важен порядок правил, поскольку первым применим тот, который используется ClearCase: вы можете найти аналогичную идею в "Представление ClearCase, в котором отображаются ТОЛЬКО файлы / каталоги, прикрепленные к ярлыку (не последний) "

person VonC    schedule 02.03.2015
comment
Спасибо за ваш ответ. Я не смогу опробовать его до четверга, но я приму ответ, как только сделаю это. - person dudenr33; 02.03.2015
comment
Я попробовал решение, описанное выше: у меня был существующий снимок с некоторыми каталогами, которые нужно было исключить, но -none не сработал. Если посмотреть на VOB, папки все еще существуют со всем своим содержимым. Обратите внимание, что папки, которые я хочу удалить, являются ссылками на другие папки в другом VOB. Я хочу удалить их, потому что снимок VIEW не знает, как обрабатывать символическую ссылку (он дублирует файлы - это после того, как мы получим проблемы с компиляцией / отладкой, потому что проверка в одном VOB не отражается в другом VOB). - person Juv; 02.07.2020
comment
@Juv Не уверен, я всегда успешно использовал эту конфигурацию раньше. Какую версию ClearCase вы используете, на какой ОС? (как клиент, так и сервер) - person VonC; 02.07.2020
comment
ClearCase версии 9.0.1.9 (как клиент, так и сервер) в Windows 10. Я подумал, что это может быть связано с тем, что это уже существующий снимок. Или к тому, что эти папки являются символическими ссылками, и я хочу показать их только в исходном VOB. Мы рассмотрели вопрос об удалении ссылок, но из-за многолетней неразберихи слишком много проектов, в которых можно исправить ссылки. - person Juv; 02.07.2020
comment
@Juv Может ли помочь stackoverflow.com/a/24952026/6309? - person VonC; 02.07.2020
comment
На самом деле мне не нравится этот ответ, потому что он говорит мне, что мне нужно отменить ссылку на исходный каталог, что означает, что я потеряю оба каталога, которых я хочу избежать. Кстати, сервер - Windows Server 2016. - person Juv; 02.07.2020