version-control clearcase

version control - Cómo encontrar los archivos modificados bajo una rama clara



version-control clearcase (5)

He modificado y registrado un montón de archivos en mi rama. Ahora necesito obtener la lista de archivos que modifiqué. ¿Hay algún script para hacerlo?


El comando anterior proporcionará todos los archivos modificados en una branch(myBranch) en particular branch(myBranch) .
Pero si desea encontrar los archivos modificados por un usuario en particular en una fecha en particular, necesitará el siguiente comando:

cleartool find . -version "{created_since(28-APRIL-2011.23:00:00) / && (!created_since(29-APRIl-2011.23:00:00)) / && brtype(BR_test) / && created_by(p723029)}" / -exec "cleartool describe -fmt /nName/t/t:/040%En/nResponsible/t:/040%u/nDate/t/t:/040%d/nComment/t/t:/040%c/n %CLEARCASE_XPN%" / -print >> D:/test.xls

(en una línea gigante para copiar / pegar propósito :)

cleartool find . -version "{created_since(28-APRIL-2011.23:00:00) && (!created_since(29-APRIl-2011.23:00:00)) && brtype(BR_test) && created_by(p723029)}" -exec "cleartool describe -fmt /nName/t/t:/040%En/nResponsible/t:/040%u/nDate/t/t:/040%d/nComment/t/t:/040%c/n %CLEARCASE_XPN%" -print >> D:/test.xls


El comando de búsqueda es la mejor fuente. Para abordar las inquietudes de los OP sobre cómo recuperar un nombre "tullido" con @@ y toda la información de la versión y la versión posterior, se puede agregar la opción "-nxn" para no proporcionar esta información. Esto es mucho más fácil que hacer la búsqueda de elementos combinada con la directiva exec para formatear la salida.

cleartool find . -type f -branch "brtype(mybranch)" -nxn -print


Usa el siguiente script

#!/bin/sh display() { echo "usage: $0 branchname -v vobs" echo " branchname: optional, if absent uses the current view-name" echo " -v vobs: optional, if absent uses default vob list" } if [ $# -gt 1 ]; then if [ $1 == -v ]; then branch=`basename $CLEARCASE_ROOT` VOB_LIST=${@:2:($# - 1)} elif [ $2 == -v ]; then branch=$1 VOB_LIST=${@:3:($# - 2)} else display exit 1 fi else VOB_LIST="/vobs/abc /vobs/def /vobs/ghi /vobs/jkl /vobs/mno" if [ $# -eq 1 ]; then if [ $1 == -h ]; then display exit 0 else branch=$1 fi else branch=`basename $CLEARCASE_ROOT` fi fi echo "Searching for files of branch <$branch> in following vobs:" echo "$VOB_LIST" echo "================================================================" cleartool find $VOB_LIST -all -version "version(.../$branch/LATEST)" -print

Guarde esto en un archivo llamado ctlsbr y utilícelo en la vob que desea para encontrar la lista de archivos modificados.

Gracias amit


prueba este comando

cleartool find -avo -nxname -element ''{brtype(branch_name)}'' -print


El comando cleartool find debería ayudarlo a encontrar cualquier elemento (archivo) con al menos una versión en una rama dada.

Lo siguiente encontrará todos los archivos en una rama.

cleartool find . -type f -branch "brtype(mybranch)" -print

Consulte los ejemplos de búsqueda o " Ejemplos adicionales del comando de búsqueda cleartool " para obtener más ejemplos.

El sarath OP agrega:

me da un nombre de archivo lisiado con @ y otros caracteres. ¿Es posible llegar con el camino normal?

Es cierto que tal comando le daría algo como (como ejemplo):

./.checkstyle@@/main/MyBranch ./.classpath@@/main/MyBranch_Int/MyBranch ./.classycle@@/main/MyBranch_Int/MyBranch ./.fbprefs@@/main/MyBranch_Int/MyBranch

Para obtener solo el camino, tienes dos soluciones:

1 / buscar elementos (y no versiones) con la rama derecha:

cleartool find . -type f -ele "brtype(mybranch)" -print

(note el -ele reemplazando el -branch )
Eso daría:

./.checkstyle@@ ./.classpath@@ ./.classycle@@ ./.fbprefs@@ ./.pmd@@

Pero todavía tienes el "feo" '' @@ ''.

2 / combina la directiva find con una directiva exec que describe el elemento encontrado con el formato fmt_ccase :

cleartool find . -type f -ele "brtype(mybranch)" -exec "cleartool descr -fmt /"%En/n/" /"%CLEARCASE_PN%/""

Forma multilínea para legibilidad:

cleartool find . -type f -ele "brtype(mybranch)" / -exec "cleartool descr -fmt /"%En/n/" /"%CLEARCASE_PN%/""

Tenga en cuenta que todas las comillas dobles "internas" deben escaparse.

El %En le dará el nombre del elemento encontrado.

./.checkstyle ./.classpath ./.classycle ./.fbprefs ./.pmd ./.project ./.settings/dico.txt