ClearCase - поиск невидимых версий элементов по определенному пути

Я пытаюсь найти все версии в определенной ветке, но спецификация конфигурации моего рабочего представления не имеет значения (я хочу работать в представлении с /main/LATEST).
Я работаю в Windows. Предполагая, что версия была создана до 27.May.17:47, и я не хочу видеть версию 0 в своей ветке.

Я попытался сделать это с помощью cleartool find:

cleartool find M:\my_view.dv\MY_VOB\folder_x\folder_y\ -version "brtype(my_branch) && ! created_since(27-May.17:47) && ! version(...\my_branch\0)" -print

Это работает для всех элементов, у которых есть как минимум версия \main\1 или более поздняя, ​​от которой элемент был разветвлен до my_branch.
Но для элемента, который только что получил версию \main\0 (потому что он был создан с таким правилом, как " element * \main\0 -mkbranch my_branch ") не работает.

Итак, я попытался использовать другую команду cleartool find с "-nvisible", но "-nvisible" не работает без "-all". Поэтому я должен использовать следующее:

cleartool find M:\my_view.dv\MY_VOB\folder_x\folder_y\ -all -nvisible -version "brtype(my_branch) && ! created_since(27-May.17:47) && ! version(...\my_branch\0)" -print

Но из-за опции «-all» мой путь «M:\my_view.dv\MY_VOB\folder_x\folder_y\» полностью игнорируется. Вместо того, чтобы просто искать на моем пути, он просматривает весь VOB, чего я не хочу. Потому что в результате он также дает мне файлы под "M:\my_view.dv\MY_VOB\folder_z\".

Поэтому мне нужно либо изменить первый запрос, который будет выдавать мне также элементы, созданные с помощью «element * \main\0 -mkbranch my_branch», либо мне нужен второй запрос, который дает мне элементы, созданные с помощью «element * \main\0 -mkbranch my_branch», только по определенному пути ...

Есть идеи, как решить проблему без дополнительного скрипта?


person Jonas    schedule 28.05.2015    source источник


Ответы (2)


Глядя на язык запросов, используемый _ 1_, вы можете использовать составные запросы

query && query
query || query ! query ( query )

Это означает, что вы можете попробовать выбрать:

  • любая версия, кроме mybranch/0: ! version(...\my_branch\0)
  • OR:
  • любая версия 0, у которой нет версии 1: version(...\my_branch\0) && ! version(...\my_branch\1)

Что-то типа:

brtype(my_branch) && ! created_since(27-May.17:47) && \
( ! version(...\my_branch\0)
  || \
  ( version(...\my_branch\0) && ! version(...\my_branch\1) ) \
)

Для полноты, это может выбрать версию 0 файла, для которого было создано несколько версий mybranch, но версия 1 была удалена (rmver).
Я не думаю, что это тоже будет < / em> хотя и часто.

person VonC    schedule 28.05.2015
comment
@Jonas Я думал, вы хотите избежать версии .../myBranch/0 (если только версия 0 не является единственной на myBranch) - person VonC; 29.05.2015

Цель состоит в том, чтобы получить список всех версий элементов в ветке «my_branch» только по определенному пути, но представление и его конфигурационная спецификация не должны иметь значения. Поэтому не имеет значения, какой тип запроса я использую, потому что, если сам элемент не выбран представлением, которое я использую для запуска поиска cleartool, в результате он не выдаст мне ни одной из своих версий. Если элемент только что получил версию /main/0, но также имеет версию .../my_branch/1, тогда он не выбран представлением со спецификацией конфигурации element * CHECKEDOUT \ element * /main/LATEST, поэтому даже если сам запрос будет перечислять этот элемент, он в любом случае не будет обработан, потому что представление не выберите его ... Таким образом, решение должно заключаться в добавлении -nvisible, чтобы все элементы были обработаны, даже если они не выбраны спецификацией конфигурации представления. Но добавить -nvisible без добавления -all тоже невозможно ... Как только я добавлю -all, команда find проигнорирует мой заданный путь и выполнит поиск по всему VOB.

person Jonas    schedule 29.05.2015