In meinem VOB gibt es eine Menge von Etiketten (der Typ, nicht Etiketten auf eine Datei angewendet). Ich möchte herausfinden, wie viele es sind, aber es ist zu viele, um mit der Hand zu zählen. Wie kann ich feststellen, wie viele Etikettentypen ich habe?Zählen Sie die Anzahl der Etiketten in ClearCase
Antwort
Dies sollte funktionieren:
cleartool find /vobs/vobsname -kind lbtype -print | wc -l
Es kam mit die Antwort 12291 zu einer der VOBs, mit denen ich arbeite (eine über 15 Jahre alte).
Beachten Sie, dass ich -s
zu dem lstype
Befehl hinzugefügt habe - ich habe eine irreführende Zeilenanzahl zuerst wegen. Hier sind einige Timing-Tests (ct
ist effektiv ein Alias für cleartool
, die weniger Typisierung nimmt - und verursacht gelegentlich eine Verwechslung mit dem "Call-Terminal-Programm auf Unix-Varianten mit archaischer Kommunikationssoftware noch installiert):
$ 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
$
Hmmm ... sehr variable Leistung auf der lstype
; Die Leistung von find
ist konsistenter und schneller. YMMV!
Ich erwarte, dass jemand eine Bezeichnung zwischen Läufen hinzugefügt hat.
Ich bin mir nicht sicher, wie man die Leistungsunterschiede beurteile; Die Ergebnisse scheinen die gleichen zu sein.
Weitere Timings auf meinem Rechner (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
$
Alle Operationen in der gleichen Ansicht, mit der Zeit nur für die Kluft zwischen 'ct lstype' eingeben und 'ct find' (Andernfalls wird der Verlauf zur erneuten Ausführung verwendet). Ich bin nicht sicher, warum es die 12291 vs 12292 Diskrepanz gibt.
$ 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
$
Verwenden lstype
:
ct lstype -local -s -kind lbtype -invob \avob -unsorted
Dann können Sie Rohr das Ergebnis auf ein wc die Etikettentypen zu zählen.
Den Parameter 'unsorted
' nicht vergessen: Das Ergebnis wird schneller berechnet.
Jonathan Leffler ‚s solution könnte schneller sein (nicht sicher, wothout die -local
für die lstype
), kann aber nicht alle die Etiketten bekommen (nicht die global diejenigen, nämlich die, die aus der Hierarchie von adminvob).
Die ct lstype
oben:
- Liste nur die lokalen Etikettentypen (entfernen Sie die
-local
alle Etikettentypen zur Liste) - keine Ansicht mit montierten vobs erfordern für den Betrieb
Getestet: lstype ist länger (x1.5). Zumindest müssen Sie keine Ansicht starten und erstellen und vobs mounten, damit es funktioniert. – VonC
Err ... viel langsamer als ein 'lstype -unsortiert' meiner Meinung nach. – VonC
...Oder nicht;) +1 für den Vergleich. Das werde ich morgen testen. – VonC
@VonC: du kannst mich überrascht (zu) zählen. 12K-Etiketten über 16 Jahre sind 750 Etiketten pro Jahr oder 2 pro Tag. Das ist im richtigen Stadion. Ich werde etwas experimentieren, wenn ich Zeit bekomme ... –