Pregunta

Estoy buscando un comando ClearCase que enumere todos los elementos que están visibles en mi vista actual, pero NO tiene una etiqueta particular aplicada.

Digamos, por ejemplo, que la mayoría de los elementos visibles en mi vista tienen LABEL_X aplicada. Quiero una lista de esos elementos que no tienen LABEL_X .

Obviamente necesito usar cleartool find , pero el uso y la página de manual de ClearCase me desconciertan en términos de cómo construir una consulta como esta.

¿Fue útil?

Solución

Esto debería funcionar:

ct find -all -ele '! lbtype_sub(LABEL_X)' -print
ct find -ele '! lbtype_sub(LABEL_X)' -print

Notas:

  • ct significa Cleartool
  • Sintaxis de Unix aquí (para Windows, reemplace comillas simples con comillas dobles)
  • tenga cuidado con el espacio entre ! y lbtype_sub (en winodws no necesita el espacio)
  • -ele muy IMPORTANTE para obtener solo una aparición de un archivo determinado (y no todas las diferentes versiones de un archivo que coincidan con un criterio)

-ele limita la búsqueda a elementos, no a versiones (que generarían muchos más resultados con versiones involucradas ...)

-all enumera todos los elementos incluidos " eliminados " (es decir, "no referenciados").
La segunda línea enumera solo los elementos visibles (en la vista actual)

Debe ejecutar esas segundas líneas de comando en el subdirectorio de su elección dentro de un ClearCase dado (instantánea o vista dinámica): todos los archivos dentro de ese subdirectorio (y subdirectorios ...) que coincidan con los criterios estar en la lista.

Advertencias:

    Se enumeran
  • archivos y directorios . Si solo desea archivos, agregue -type f a la consulta:

    ct find -type f -ele '! lbtype_sub (LABEL_X)' -print

  • lo que se muestra es la ruta extendida para los elementos, es decir, el nombre del archivo seguido de @@ .

Para enumerar solo el nombre sin @@ , use ' -nxn ' (sin opción de nombre de ruta extendido)

ct find -nxn -ele '!lbtype_sub(LABEL_X)' -print

Otra forma más compleja pero también más completa de listar solo el nombre sin @@ , es usar descr -fmt . Por ejemplo:

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"'

le daría (en Windows o sintaxis de Unix) la fecha y el nombre de los archivos y directorios no etiquetados LABEL_X.

Con esa pantalla ' descr -fmt ', puede combinar cualquier tipo de información y presentación que desee para el resultado.

Otros consejos

Lo anterior funciona, pero recuerde especificar -cview para obtener SOLO la vista actual, de lo contrario obtendrá archivos de todas las otras vistas también.

Necesitaba usar lo siguiente en mi instalación de clearcase de Linux:

cleartool find -cview -all -version '\!lbtype(LABEL_X)' -print

La sintaxis de la publicación de VonC no funcionó correctamente con el "! " no ser escapado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top