Подсчитайте количество меток в ClearCase - PullRequest
1 голос
/ 05 января 2011

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

Ответы [ 2 ]

2 голосов
/ 05 января 2011

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

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

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

Обратите внимание, что яЯ добавил -s в команду lstype - из-за этого я впервые получил неверный счетчик строк.Вот некоторые временные тесты (ct фактически является псевдонимом для cleartool, который требует меньше времени на печать - и вызывает случайную путаницу с программой 'call Terminal' в Unix, где все еще установлено программное обеспечение архаичной связи):

$ 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
$ 

Все операции в одном представлении, время ввода только дляразрыв между 'ct lstype' и 'ct find' (в противном случае используется история для повторного выполнения).Я не уверен, почему существует расхождение 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
$
1 голос
/ 05 января 2011

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

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

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

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

Джонатан Леффлер решение может быть быстрее (не уверен, без -local для lstype), но не может получить все метки (не глобальные, то есть из иерархии adminvob).

ct lstype выше:

  • перечислять только локальные типы меток (удалите -local, чтобы перечислить все типы меток)
  • для работы не требуется вид со смонтированными вобами
...