Перечислите все ветви для определенного файла / каталога в Clearcase - PullRequest
1 голос
/ 16 октября 2019

Команда cleartool lsvtree -s . близка, но она перечисляет больше, чем просто ветви:

X:\main_dev\common>cleartool lsvtree -s .
.@@\main
.@@\main\2
.@@\main\3
.@@\main\4
.@@\main\10
.@@\main\2.1.3
.@@\main\2.1.3\1
.@@\main\13
.@@\main\3.0.2
.@@\main\3.0.2\0
.@@\main\15
.@@\main\4.1.0
.@@\main\4.1.0\0
.@@\main\17
.@@\main\4.2.0
.@@\main\4.2.0\0
.@@\main\4.5.0
.@@\main\4.5.0\0
.@@\main\20
.@@\main\lib-4.6.0
.@@\main\lib-4.6.0\0
.@@\main\27
.@@\main\4.6.0
.@@\main\4.6.0\0
.@@\main\4.6.0\4.6.01
.@@\main\4.6.0\4.6.01\0

Я хочу, чтобы она производила только ветви, как:

X:\main_dev\common>cleartool lsvtree -s .
.@@\main
.@@\main\2.1.3
.@@\main\3.0.2
.@@\main\4.1.0
.@@\main\4.2.0
.@@\main\4.5.0
.@@\main\lib-4.6.0
.@@\main\4.6.0\4.6.01

Я предполагаю, чторешение будет включать команду cleartool find. Есть идеи?

1 Ответ

0 голосов
/ 16 октября 2019

cleartool find действительно, в сочетании с директивой -exec с использованием cleartool describe и -fmt_ccase.

или простоlshistory с тем же fmt_ccase

cleartool  lshistory -fmt "\tElement: %-13.13En Version: %Vn\n" util.c
Element: util.c Version: /main/rel2_bugfix/1
Element: util.c Version: /main/rel2_bugfix/0
Element: util.c Version: /main/rel2_bugfix 

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

Что-то вроде:

cleartool  lshistory -fmt "%Vn\n" util.c|sed "s,/[0-9]\+,,g"

OP Derrick предлагает в комментариях более простой вариант :

cleartool lsvtree aFile | grep -v '\[0-9]\+$' 

Явсе еще ищем детерминистический (без предположений об именовании) способ найти все ветви для определенного файла / каталога

Любая запись в lsvtree, в которой есть элемент '0', является ветвью.
O - это плацостер для новых версий ветки .
См. " Стандартно ли путь в прозрачном регистре - '@@' и строка после этого "

Пример (в динамическом представлении):

ls .@@\main\4.6.0
0

ls .@@\main\4.6.0\0
(nothing)

Следовательно, \main\4.6.0 является ветвью.

...