Come posso interagire con ClearCase da Perl?

Il mio progetto ha bisogno di un paio di cose da estrarre dai dati ClearCase usando lo script Perl in un foglio Excel, quelli sono –
Dando due particolari linee temporali o due linee di base.

  1. tutte le attività associate all’interno di tale linea di base (intestazione di colonna “attività”)
  2. ID proprietario (intestazione della colonna-Proprietario)
  3. tutto l’elemento associato a una determinata attività. (intestazione della colonna- “dettagli dell’elemento”)
  4. Per ogni elemento le versioni associate (intestazione colonna “Versioni”)
  5. per ogni elemento il numero totale di righe di codice, il numero totale di righe di codice aggiunte, il numero totale di righe di codice cancellate, il numero totale di righe di codice modificate .. (intestazione di colonna “N. di righe di codice”, “linee di codice aggiunto “,” righe di codice cancellate “e” righe di codice modificate “)

Per favore, aiutami gentilmente su questo …

Fondamentalmente, lo scripting Perl ClearCase si basa sugli output parsati dei comandi system e cleartool.

Gli script sono basati su un pacchetto clearCool CMD simile a CCCmd e sono usati come:

use strict; use Config; require "path/to/CCCmd.pm"; sub Main { my $hostname = CCCmd::RunCmd('hostname'); chomp $hostname; my $lsview = CCCmd::ClearToolNoError("lsview -l -pro -host $hostname"); return 1; } Main() || exit(1); exit(0); 

per esempio.

Quindi, una volta che avete la struttura Perl di base, tutto ciò di cui avete bisogno sono i comandi cleartool da analizzare, basati sulle direttive fmt_ccase .

1 / tutta l’attività associata all’interno di tale linea di base (intestazione di colonna “attività”)

  ct descr -fmt "%[activities]CXp" baseline:[email protected]\ideapvob 

Questo ti darà la lista delle attività (separate da ‘ , ‘).

Per ogni attività:

2 / id del proprietario (intestazione della colonna-proprietario)

  ct descr -fmt "%u" activity:[email protected]\ideapvob 

3 / tutto l’elemento associato all’interno di una particolare attività. (intestazione della colonna- “dettagli dell’elemento”)

Non sono sicuro: le attività possono elencare le loro versioni (vedi / 4), non facilmente i loro elementi

4 / Per ogni elemento le versioni associate (intestazione colonna “Versioni”)

Per una determinata attività:

  ct descr -fmt "%[versions]CQp\n" activity:[email protected]\ideapvob 

5 / per ogni elemento il numero totale di righe di codice, il numero totale di righe di codice aggiunte, il numero totale di righe di codice cancellate, il numero totale di righe di codice modificate .. (intestazione di colonna “Numero di righe di codice”, “righe di codice aggiunte”, “righe di codice cancellate” e “righe di codice modificate”)

Può essere abbastanza lungo, ma per ogni versione è ansible calcolare il percorso esteso della versione precedente e creare una diff.

Consiglierei di utilizzare per tutto ciò una vista dynamic, dal momento che è ansible accedere a qualsiasi versione di un file da lì (al contrario di una vista istantanea).

Inoltre se hai bisogno di usare perl con Clearcase dai un’occhiata al modulo CPAN ClearCase :: CtCmd . Vorrei raccomandare di usare questo modulo perl per invocare i comandi clearcase.

Per il pacchetto CCCmd, ho dovuto rimuovere le doppie virgolette nei sottotitoli RunCmd e RunCmdNoError per farlo funzionare.