Come posso eseguire un check-out ricorsivo usando ClearCase?

Voglio controllare tutti i file in tutte le sottodirectory di una cartella specificata.

(Ed è doloroso farlo utilizzando la GUI, perché non esiste un’opzione di pagamento ricorsivo).

Attenzione: ClearCase è incentrato su File e non su repository centric (come SVN o CVS).

Ciò significa che raramente è una buona soluzione per eseguire il checkout di tutti i file (e può essere abbastanza lungo con ClearCase;))

Detto questo, la domanda è perfettamente legittima e vorrei sottolineare un altro modo:

aprire una sessione cleartool nella ‘cartella specificata’:

 c:\MyFolder> cleartool cleartool> co -c "Reason for massive checkout" .../* 

fa anche il trucco. Ma come risposta dell’Aku, fa il checkout di tutto : file e directory … e potresti non aver più bisogno di controllare le directory!

 cleartool find somedir -type f -exec "cleartool checkout -c \"Reason for massive checkout\" \"%CLEARCASE_PN%\"" 

farebbe solo il checkout dei file …

Ora il problema è controllare tutto ciò che è cambiato. È problematico poiché spesso non tutto è cambiato e CleaCase attiverà un messaggio di errore quando si tenta di archiviare un file identico. Significa che avrete bisogno di 2 comandi:

 ct lsco -r -cvi -fmt "ci -nc \"%n\"\n" | ct ct lsco -r -cvi -fmt "unco -rm %n\n" | ct 

(con ‘ ct being’ cleartool ‘: digita’ doskey ct=cleartool $* ‘su Windows per impostare l’alias)

Si noti che ct ci -nc effettuerà il check-in con il commento utilizzato per la fase di checkout.
Quindi non è un check-in senza un commento (come l’opzione -nc – o “nessun commento” – potrebbe far credere).

 cleartool find somedir -exec "cleartool checkout -nc \"%CLEARCASE_PN%\"" 

Potrebbe anche essere utile un articolo ” ClearCase: I dieci migliori script ”