2011-12-14 8 views
7

Non sono riuscito a trovare il comando corretto per applicare un'etichetta ai file che sono nella mia vista corrente. Ho provato il seguente comando:Cleartool: come applicare l'etichetta ai file che sono solo nella mia vista corrente?

cleartool mklabel -r TEST_LABEL /vob/test/a 

Tuttavia, il problema è che questo comando si applica la "Test_Label" etichetta per tutti i file nelle "vob/test/a" directory indipendentemente dal fatto che i file sono a mio avviso corrente.
Esiste un comando per applicare l'etichetta solo ai file elencati nella mia vista corrente?

risposta

1

I mklabel documentation stati stato, da quale versione è etichettato:

Processi tutta sottostruttura di ogni pname che è un elemento directory (compresi pname stesso). I collegamenti simbolici VOB non vengono attraversati durante la discesa ricorsiva nella sottostruttura.

Un esempio cita:

Applicare questa etichetta alla versione della directory corrente selezionata dal vostro vista, e al versione attualmente selezionato di ogni elemento e sotto la directory corrente .


Ora, se si vuole essere davvero sicuri delle versioni in realtà etichettati, una soluzione è quella di utilizzare un comando find, in combinazione con il vostro mklabel:

cleartool find . -cview -exec "cleartool mklabel TEST_LABEL \"%CLEARCASE_XPN%\"" 

Se trovassi già quell'etichetta applicata alla versione errata e voglio spostarla:

cleartool find . -cview -exec "cleartool mklabel -replace TEST_LABEL \"%CLEARCASE_XPN%\"" 

In questo modo, è possibile prima Lista le versioni coinvolte:

cleartool find . -cview -print 

E poi, se siete d'accordo con l'uscita, applicare il mklabel attraverso la direttiva -exec.

Le OP user1096966 rapporti farlo funzionare con un cleartool ls, per essere sicuri di selezionare solo elemento visibile nella vista corrente:

cleartool ls -r -vis 

La direttiva non è 'exec', in modo da un tubo potrebbero essere coinvolti, come in (non testato, ma si ottiene l'idea):

cleartool ls -r -vis -s -nxn | xargs cleartool mklabel -replace TEST_LABEL 
+0

Ciao, grazie per la tua risposta ma vorrei ap etichetta ply (mklabel) e non creare (mklbtype) una nuova etichetta. – user1096966

+0

@ user1096966: risposta aggiornata e corretta – VonC

+0

Ho appena provato "cleartool find. -cview -print" ma l'output non è quello che voglio. L'output ha mostrato altra directory che non è visibile nella mia vista corrente. Grazie per il tuo aiuto, proverò a ottenere l'output corretto per primo. – user1096966

0

il doco è molto chiaro su ciò che viene etichettato, infatti il ​​primo examp le mostrate in doco affermano che esattamente ... gli oggetti di visualizzazione corrente sono etichettati per default nelle versioni correntemente selezionate (ad esempio, &). se a tuo modo di vedere l'etichetta, altrimenti no.)

....estrai qui di seguito doco (nota: contesto e comando e quell'etichetta-tipo-selettore pname è l'ultimo parametro ... lasciato vuoto sotto perché residente nella directory di lavoro) ...

Esempio: • Creare un tipo di etichetta chiamato REL6. Allegare quell'etichetta alla versione della directory corrente selezionata dalla propria vista e alla versione attualmente selezionata di ciascun elemento in e sotto la directory corrente. cmd-context> mklbtype -nc REL6

saluti

Jim2

4
cleartool mklabel -r(ecurse) LABEL_NAME <directory name> 

Questo comando si applica LABEL_NAME a tutti i file nella cartella e al di sotto della vista, si può solo andare a quella directory, quindi digitare il seguente comando per creare e applicare l'etichetta

> cd /vob/test/a 
> cleartool mklbtype –nc TEST_LABEL 
> cleartool mklabel -r TEST_LABEL . 
Problemi correlati