Команда для удаления ветвей элемента Clearcase с версиями "0"

Что такое команда в Clearcase, чтобы удалить ветви элемента, в котором он не изменен (версия элемента в этой ветви - "0")?

2 ответа

Решение

Вы можете просто удалить версию 0 этого элемента (которую я подробно описал здесь).

Это удалит связанную ветку.

cleartool rmver file@@/main/aBranch/0

Вам нужно будетcleartool find"все элементы с версией 0 (и без версии 1), и rmver те версии 0.
Для данной ветви это вернуло бы все версии для удаления:

cleartool find -type f -version "version(.../blah/LATEST)&&version(.../blah/0)" -print

Вы можете комбинировать это с директивой exec:

# on Windows:
cleartool find ... -exec "cleartool rmver --force \"%CLEARCASE_XPN%\"
# on Unix:
cleartool find ... -exec 'cleartool rmver --force "$CLEARCASE_XPN\"'

Будь осторожен с rmver , это разрушительная операция, поэтому тщательно проверьте ее перед выполнением полной find -exec rmver команда!


Другой подход упоминается в статье Джорджа Фрейзера " Очистка элементов с нулевой версией в ClearCase":

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

cleartool find -avobs -branch'{
    brtype(mybranch)&&!
    (version(.../mybranch/1))}' 
     -print > c:\files.txt 

Это найдет все элементы без версии 1 на mybranch (если вы внимательно прочитаете, вы заметите, что это не будет делать правильно, если вы удалили 1 версию элемента, у которого уже есть версии, большие или равные 2 - хотя это редкая ситуация).
Когда закончите, это просто вопрос использования rmbranch уничтожить элементы (убедитесь, что вы знаете, что делаете здесь!).
Есть много способов сделать это; так как я запускаю инструментарий MKS, я выполняю следующее из командного окна:

cleartool rmbranch -f 'cat c:\files.txt' 

Tamir Gefen предлагает триггер для автоматического удаления версии 0, как указано в IBM Rational ClearCase: десять лучших триггеров, в разделе Пустая ветвь.

cleartool mktrtype -c "Automatically remove empty branch" -element -all -postop uncheckout -execwin "ccperl \\mw-ddiebolt\triggers\test_empty_branch.bat" REMOVE_EMPTY_BRANCH

Это хорошо для будущих случаев, когда проверка отмены оставляет версию 0.

Rmver не будет работать.

/ home / ccadmin $ cleartool rmver -force./VaREngine/Makefile@@/main/nz_mig/nz_relOne/0 cleartool: Ошибка: невозможно удалить нулевую версию без удаления ветки: "./VaREngine/Makefile".

Другие вопросы по тегам