Cleartool: Как применить метку к файлам, которые находятся только в моем текущем представлении?

Я не смог найти подходящую команду для применения метки к файлам, которые находятся в моем текущем представлении. Я пробовал следующую команду:

cleartool mklabel -r TEST_LABEL /vob/test/a

Однако проблема заключается в том, что эта команда будет применять метку "Test_Label" ко всем файлам в каталогах "vob/test/a" независимо от того, находятся ли файлы в моем текущем представлении.
Есть ли какая-либо команда для применения метки только к перечисленным файлам? в моем нынешнем представлении?


person user1096966    schedule 14.12.2011    source источник


Ответы (3)


cleartool mklabel  -r(ecurse) LABEL_NAME <directory name>

Эта команда применит LABEL_NAME ко всем файлам в папке и ниже вашего представления, вы можете просто перейти в этот каталог, а затем ввести следующую команду, чтобы создать и применить метку

> cd /vob/test/a
> cleartool mklbtype –nc TEST_LABEL 
> cleartool mklabel  -r TEST_LABEL .
person shijq73    schedule 24.04.2015

mklabel документация указывает, какая версия помечена:

Обрабатывает все поддерево каждого pname, являющегося элементом каталога (включая само pname). Символические ссылки VOB не просматриваются при рекурсивном спуске в поддерево.

В одном примере упоминается:

Прикрепите эту метку к версии текущего каталога, выбранной вашим представлением, и к выбранной в данный момент версии каждого элемента в текущем каталоге и ниже него.


Теперь, если вы хотите быть действительно уверенными в том, какие версии действительно помечены, одним из решений является использование команды find в сочетании с вашей mklabel:

cleartool find . -cview -exec "cleartool mklabel TEST_LABEL \"%CLEARCASE_XPN%\""

Если вы уже применили этот ярлык к неправильной версии и хотите переместить его:

cleartool find . -cview -exec "cleartool mklabel -replace TEST_LABEL \"%CLEARCASE_XPN%\""

Таким образом, вы можете сначала перечислить задействованные версии:

cleartool find . -cview -print

И затем, если вы согласны с выводом, примените mklabel через директиву -exec.

OP user1096966 сообщает, что он работает с cleartool ls, чтобы выбрать только видимый элемент в текущем представлении:

cleartool ls -r -vis

Директива is no '-exec', поэтому может быть задействован канал, например (не проверено, но вы поняли):

cleartool ls -r -vis -s -nxn | xargs cleartool mklabel -replace TEST_LABEL
person VonC    schedule 14.12.2011
comment
Привет, спасибо за ваш ответ, но я хотел бы применить (mklabel) ярлык, а не создавать (mklbtype) новый ярлык. - person user1096966; 14.12.2011
comment
Я только что попробовал cleartool найти . -cview -print но вывод не тот, что мне нужен. На выходе отображается другой каталог, который не отображается в моем текущем представлении. Спасибо за вашу помощь, я постараюсь сначала получить правильный вывод. - person user1096966; 14.12.2011
comment
Мне удалось получить желаемый результат, если я использую эту команду cleartool ls -r -vis - person user1096966; 14.12.2011
comment
@ user1096966: вы пробовали cleartool find . -cview -vis -exec..., потому что вы не можете добавить -exec к ls. - person VonC; 14.12.2011
comment
Да, я не могу использовать exec, если я использую ls, но я также не могу использовать cleartool find . -cview -vis. - person user1096966; 14.12.2011

В документе действительно четко указано, что помечается, на самом деле в первом примере, показанном в документе, говорится, что именно... текущие объекты представления помечены по умолчанию и в настоящее время выбраны версии (т.е. если в вашем представлении, то пометьте его, иначе нет.)

.... извлеките ниже из документа ниже (примечание: контекст и команда, и что pname селектора типа метки является последним параметром ... оставлено пустым ниже, потому что находится в рабочем каталоге) ...

Пример: • Создайте тип этикетки с именем REL6. Прикрепите эту метку к версии текущего каталога, выбранной вашим представлением, и к текущей выбранной версии каждого элемента в текущем каталоге и ниже него. cmd-context> mklbtype –nc РЕЛ6

С уважением

Джим2

person JimZ    schedule 22.02.2012