Como faço para realizar um check-out recursiva usando o ClearCase?
-
09-06-2019 - |
Pergunta
Eu quero para verificar todos os arquivos em todas as subpastas de uma pasta especificada.
(E é doloroso para o fazer, usando a GUI, porque não há nenhuma opção de check-out recursiva).
Solução
Cuidado com:ClearCase é o Arquivo-centric, não centrada no repositório (como o SVN ou CVS).
Isso significa que ele raramente é uma boa solução para check-out de todos os arquivos (e pode ser bastante longo, com ClearCase ;) )
Dito isto, a questão é perfeitamente legítimo e gostaria de destacar uma outra forma:
abrir um cleartool
sessão na 'pasta especificada':
c:\MyFolder> cleartool
cleartool> co -c "Reason for massive checkout" .../*
faz o truque também.Mas como o aku a resposta, ele faz o checkout tudo:arquivos e diretórios...e você pode mais não precisa para a finalização da compra diretórios!
cleartool find somedir -type f -exec "cleartool checkout -c \"Reason for massive checkout\" \"%CLEARCASE_PN%\""
seria apenas checkout arquivos...
O problema agora é o de disponibilizar tudo o que foi alterado.Isso é problemático, pois muitas vezes nem tudo mudou, e CleaCase irá disparar uma mensagem de erro ao tentar verificar um arquivo idênticos.O que significa que você vai precisar de 2 comandos:
ct lsco -r -cvi -fmt "ci -nc \"%n\"\n" | ct
ct lsco -r -cvi -fmt "unco -rm %n\n" | ct
(com 'ct
sendo 'cleartool
':tipo 'doskey ct=cleartool $*
'no Windows para definir que alias)
Note que ct ci -nc
vai de check-in com o comentário utilizado para a saída da fase.
Por isso, é não um checkin sem um comentário, como o -nc
a opção -- ou "nenhum comentário", poderia fazer crer).
Outras dicas
cleartool find somedir -exec "cleartool checkout -nc \"%CLEARCASE_PN%\""
Também um artigo "ClearCase:Os dez melhores scripts"pode ser útil