2011-01-05 18 views
1

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

2

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

Err ... viel langsamer als ein 'lstype -unsortiert' meiner Meinung nach. – VonC

+0

...Oder nicht;) +1 für den Vergleich. Das werde ich morgen testen. – VonC

+0

@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 ... –

1

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
+0

Getestet: lstype ist länger (x1.5). Zumindest müssen Sie keine Ansicht starten und erstellen und vobs mounten, damit es funktioniert. – VonC

Verwandte Themen