2011-01-05 3 views
1

В моем VOB есть много ярлыков (тип, а не метки, применяемые к файлу). Я хочу узнать, сколько их есть, но слишком много, чтобы рассчитывать вручную. Как я могу подсчитать количество типов меток, которые у меня есть?Подсчитайте количество меток в ClearCase

ответ

2

Это должно работать:

cleartool find /vobs/vobsname -kind lbtype -print | wc -l 

Он придумал ответ 12291 на одном из VOB, с которыми я работаю (которому более 15 лет).

Отметьте, что я добавил -s в команду lstype. Из-за этого я получил вводящий в заблуждение счет строки. Вот некоторые тесты синхронизации (ct фактически псевдоним для cleartool, который берет меньше печатать - и вызывает иногда путаницы с программой «вызова терминала» на Unixes с программным обеспечением архаические связи все еще установлена):

$ time ct find . -kind lbtype -print | wc -l 
12291 
    27.08s real  1.77s user  1.30s system 
$ time ct lstype -kind lbtype -s -unsorted | sort | uniq -c | 
>  tee /tmp/x1 | wc -l 
12292 
    58.10s real  4.96s user  4.66s system 
$ time ct lstype -kind lbtype -s -unsorted | wc -l      
12292 
    94.97s real  4.48s user  4.52s system 
$ time ct lstype -kind lbtype -s -unsorted | wc -l 
12292 
    73.66s real  4.69s user  4.91s system 
$ time ct find . -kind lbtype -print | wc -l        
12291 
    25.39s real  2.19s user  1.53s system 
$ 

Хммм ... очень переменная производительность на lstype; производительность find является более последовательной и быстрой. YMMV!

Я ожидаю, что кто-то добавит ярлык между прогонами.

Я не уверен, как оценить различия в производительности; результаты кажутся одинаковыми.


Дальнейшие тайминги на моей машине (Linux x86/64):

$ time ct lstype -local -s -kind lbtype -invob /vobs/vobname -unsorted | wc -l 
12292 
    79.49s real  1.27s user  1.87s system 
$ time ct lstype -local -s -kind lbtype -invob /vobs/vobname -unsorted | wc -l 
12292 
    36.87s real  1.39s user  1.79s system 
$ time ct lstype -local -s -kind lbtype -invob /vobs/vobname -unsorted | wc -l 
12292 
    32.30s real  1.33s user  1.92s system 
$ time ct find /vobs/vobname -kind lbtype -print | wc -l 
12291 
    21.68s real  0.81s user  0.67s system 
$ time ct find /vobs/vobname -kind lbtype -print | wc -l 
12291 
    21.87s real  0.76s user  0.68s system 
$ time ct lstype -local -s -kind lbtype -invob /vobs/vobname -unsorted | wc -l 
12292 
    32.94s real  1.26s user  1.78s system 
$ 

Все операции в одной и той же точки зрения, с печатая время только разрыв между «каратного lstype» и «каратного находке» (иначе, используя историю для повторного выполнения). Я не уверен, почему существует 12291 против 12292 несоответствий.

$ ct -version 
ClearCase version 7.0.1 (Wed May 30 17:04:58 EDT 2007) 
7.0.1.0-RATL-RCC-IFIX01 (Wed Sep 19 16:08:10 EDT 2007) 
7.0.1.1-RATL-RCC-RWP (Wed Dec 05 15:35:18 EST 2007) 
7.0.1.1-RATL-RCC (Wed Dec 05 16:29:24 EST 2007) 
7.0.1.1-RATL-RCC-IFIX02 (Tue May 13 14:43:13 EDT 2008) 
7.0.1.2-RATL-RCC (Tue Jul 29 14:40:53 EDT 2008) 
7.0.1.2-RATL-RCC-RWP (Tue Jul 29 17:31:59 EDT 2008) 
7.0.1.3-RATL-RCC (Wed Nov 12 13:22:16 EST 2008) 
7.0.1.4-RATL-RCC (Wed Feb 18 13:00:21 EST 2009) 
@(#) MVFS version 7.0.1.4 (Tue Dec 9 00:34:57 2008) built at $Date: 2010-06-11.13:25:31 (UTC) $ 
cleartool       7.0.1.4 (Wed Dec 10 00:55:12 EST 2008) 
db_server       7.0.1.4 (Tue Dec 9 01:09:22 EST 2008) 
VOB database schema version: 54 
$ 
+0

Err ... намного медленнее, чем 'lstype-unsorted', на мой взгляд. – VonC

+0

...Или нет;) +1 для сравнения. Я проверю это завтра. – VonC

+0

@VonC: вы можете посчитать меня удивленным (тоже). 12K этикетки старше 16 лет - 750 ярлыков в год или 2 раза в день. Это в правильном футбольном поле. Я буду экспериментировать с некоторыми, когда я получу время ... –

1

Использование lstype:

ct lstype -local -s -kind lbtype -invob \avob -unsorted 

Затем вы можете направить результат в туалет, чтобы сосчитать типы меток.

Не забывайте параметр 'unsorted': результат будет быстрее вычисляться.

Jonathan Leffler «s solution может быть быстрее (не уверен, wothout в -local для lstype), но не может получить все этикетки (не глобальные, то есть те, от иерархии adminvob).

ct lstype выше:

  • список только местные виды этикеток (удалить -local перечислить все типы меток)
  • не требуют представления с установленным ВОБ работать
+0

Протестировано: lstype длиннее (x1.5). По крайней мере, вам не нужно запускать/создавать представление и монтировать vob, чтобы он работал. – VonC

Смежные вопросы