cleartool encuentra diferencia recursiva en cierto tipo de file a pnetworkingecesor

En mi script, llamo a ClearCase para verificar si se ha cambiado algún file de un determinado tipo de file en la ruta actual (incluidas todas las subcarpetas). No estoy familiarizado con el cleartool en absoluto, el command debería hacer esto:

cleartool diff -pnetworkingecessor -recursive * .filetype

Como valor de retorno solo necesito un bool: verdadero si existen diferencias, falso si nada ha cambiado

Como valor de retorno solo necesito un bool: verdadero si existen diferencias, falso si nada ha cambiado

Necesitas un script. Un simple find + exec no será suficiente, porque el estado de salida no será exactamente lo que necesita.

#! /bin/bash noChange=0 ### "cleartool diff" exit status means no difference files=$(cleartool find . -name "*.filetype") for f in ${file}; do; cleartool diff -pre -options "-status_only" "${f}" if [ $? != $noChange ]; then exit 0 fi done exit 1 

( 0 es verdadero, falso es 1 en shell )

Tenga en count el uso, en cleartool diff del parámetro -options :

 opt/ions pass-through-opts 

Especifica una o más opciones de método de comparación que no son compatibles directamente con diff.

De esta forma, solo obtiene el estado de cleartool diff , que es precisamente lo que quiere probar en su caso.

Como su pregunta anterior muestra que también tiene Git, puede ejecutar fácilmente esa secuencia de commands en una session de bash, incluso en Windows.

A primera vista, el command que estás buscando es algo como esto:

 cleartool find . -name "*.filetype" -exec 'cleartool diff -pnetworking "$CLEARCASE_PN"' 

En Windows, se vería así:

 cleartool find . -name "*.filetype" -exec "cleartool diff -pnetworking \"%CLEARCASE_PN%\"" 

Las comillas simples en el ejemplo de Unix son significativas ya que, de lo contrario, la reference de la variable de entorno "CLEARCASE_PN" se expandiría en el momento en que inicie el command y no cuando el -exec realmente se active.

La construcción \ "% CLEARCASE_PN% \" en la command-line de Windows y "$ CLEARCASE_PN" en Unix es para dar count de los nombres de los files, incluidos los espacios.

Ahora, mirando lo que quieres … No estoy seguro de que logre el propósito subyacente, sea lo que sea.