ClearCase UCM: ветвь, созданная для файла, не являющегося частью операции. Что случилось?

Я каким-то образом создал ветвь файла в прозрачном UCM, которая не является частью действия. Я не знаю, как это воспроизвести, но мой поток показывает много файлов с этим симптомом. Как мне найти эти файлы, удалить их и предотвратить повторение подобных ситуаций в будущем?

Вот пример одного такого файла, имена отредактированы для защиты невиновных:

xxxxxxxxxxx.cpp@@/main/xxx-integration/xxxxxx-xxxxxxxx/0 Rule: .../xxx-xxxxxxx/LATEST

ct lsact -long | grep <filename> не возвращает результатов.

Обновление: я использовал команду find, чтобы отследить все файлы, которые находятся в ветке, указанной (и отредактированной) выше, хотя я все еще не понимаю проблему.

Согласно ответу VonC, где я закончил:

cleartool find . -type f -version "version(.../xxx/LATEST)&&version(.../xxx/0)" -print | tee ~/tmp/files2

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

cat ~/tmp/files2 | while read
do 
    if [ -z "$(ct describe -fmt "%[activity]p" $REPLY)" ]
    then 
        ct rmbranch -f ${REPLY%/0}
    fi
done

person Seamus Connor    schedule 29.08.2013    source источник


Ответы (1)


Это может произойти, если эти файлы были проверены в базовом представлении ClearCase, то есть в представлении, отличном от UCM, с простой спецификацией конфигурации:

element * .../xxx-integration/LATEST -mkbranch xxxxxx-xxxxxxxx

Вы можете использовать команду поиска, аналогичную «Как я могу найти все элементы в ветке с версией LATEST, к которой не применена метка? ".
Разница в том, что для каждой найденной версии вам необходимо описать ее, чтобы проверить, привязано ли к ней действие или нет (с помощью _ 2_):

cleartool describe -fmt "%[activity]p" "$CLEARCASE_XPN"
person VonC    schedule 29.08.2013
comment
Идеально. Я знал, что вы придете на помощь! - person Seamus Connor; 30.08.2013
comment
Чего я не понимаю, так это того, как изменения закончились в версии 0. Есть идеи, как это могло произойти? - person Seamus Connor; 30.08.2013
comment
@Seamus это обычно знак checkout, за которым следует unco (undo checkout), что оставляет версию 0 во вновь созданной ветке. Вы можете удалить эту версию 0, выполнив stackoverflow.com/a/18183902/6309. - person VonC; 30.08.2013