ClearCase: Como encontrar elementos que não têm um rótulo específico
-
22-07-2019 - |
Pergunta
Eu estou procurando um comando ClearCase que irá listar todos os elementos que são visíveis no meu ponto de vista atual, mas fazê não tem um rótulo específico aplicado a eles.
Digamos, por exemplo, a maioria dos elementos que são visíveis na minha opinião têm LABEL_X aplicado a eles. Quero uma lista dos elementos que não têm LABEL_X .
Eu, obviamente, precisa usar cleartool find
, mas o uso ea página man ClearCase defletor mim em termos de como construir uma consulta como esta.
Solução
Isso deve funcionar:
ct find -all -ele '! lbtype_sub(LABEL_X)' -print
ct find -ele '! lbtype_sub(LABEL_X)' -print
Notas:
- ct significa cleartool
- Unix sintaxe aqui (para Windows, substituir aspas simples com aspas)
- cuidado com o espaço entre
!
elbtype_sub
(em winodws você não precisa do espaço) -
-ele
muito importante para obter apenas uma ocorrência de um determinado arquivo (e nem todas as diferentes versões de um arquivo correspondente a um critério)
-ele
limita a pesquisa aos elementos, e não versões (que provocaria um muito mais resultados com versões envolvidos ...)
lista -all
todos os elementos incluídos "excluído" (isto é "sem referência") queridos.
somente as listas segunda linha visível elementos (na visão atual)
Você deve executar essas segundas linhas de comando no sub-diretório de sua escolha dentro de um determinado ClearCase (instantâneo ou visão dinâmica): todos os arquivos dentro dessa sub-diretório (e sub-sub-diretórios ...) coincidindo com os cirtérios vai ser listados.
Advertências:
-
arquivos e diretórios são listados. Se você quiser apenas os arquivos, adicione
-type f
para a consulta:CT encontrar -type f -ele '! Lbtype_sub (LABEL_X)' -print
-
o que é exibido é o caminho estendida para elementos, que é o nome do arquivo seguido com
@@
.
para listar apenas o nome sem @@
, use '-nxn
' (sem opção extendedpathname)
ct find -nxn -ele '!lbtype_sub(LABEL_X)' -print
Outra forma mais complexa, mas também mais completa a lista apenas o nome, sem @@
, é usar descr -fmt
. Por exemplo:
ct find . -ele "!lbtype_sub(LABEL_X)" -exec "cleartool descr -fmt \"%En %d\n\" \"%CLEARCASE_PN%\""
ct find . -ele '! lbtype_sub(LABEL_X)' -exec 'cleartool descr -fmt "%En %d\n" "$CLEARCASE_PN"'
iria dar-lhe (em janelas ou sintaxe unix) a data eo nome dos arquivos e diretórios não rotulados LABEL_X.
Com isso descr -fmt
'display, você pode combinar qualquer tipo de informação e apresentação que você deseja para o resultado.
Outras dicas
Acima funciona, mas lembre-se de -cview specifiy para obter apenas o ponto de vista atual, caso contrário você vai obter os arquivos de todos os outros pontos de vista também.
eu precisava usar o seguinte no meu Linux Clearcase instalar:
cleartool find -cview -all -version '\!lbtype(LABEL_X)' -print
A sintaxe da postagem de VonC não funcionou corretamente com o "!" não sendo escapou.