2010-09-06 3 views
1

Avoir une sauvegarde de taille régulière pour seulement les éléments de checkout modifiés dans toutes les vues serait une bonne chose pour nous, car une grande partie de la dynamique définie Les vues/snapshot ne peuvent pas être incluses dans la stratégie de sauvegarde quotidienne. Le code ksh suivant est proche de ce dont nous aurions besoin pour une vue dynamique, mais suppose que la première ligne du fichier config-spec de la vue sélectionne toujours l'élément extrait en premier (* element * CHECKEDOUT *). Ça ne marchera pas bien en général.clearcase: Sauvegarde pour les éléments modifiés uniquement dans tous les affichages

Pour chaque fichier versionné de la vue, nous souhaitons pouvoir l'ajouter à la liste de sauvegarde seulement s'il est différent du dernier élément versionné correspondant dans le VOB sélectionné pour cette vue. (Seulement si cela a été développé dans la vue).

[La solution devrait être valable pour des vues instantanées aussi]

for CHECKEDOUT_FILE_IN_THE_VIEW in $(/usr/atria/bin/cleartool lsco -cview -avobs -short ) 
do 

    VERSIONED_FILE_NAME=$(/usr/atria/bin/cleartool describe -short ${CHECKEDOUT_FILE_IN_THE_VIEW} \ 
         | sed -e's/CHECKEDOUT/LATEST/') 

    if [ -f ${VERSIONED_FILE_NAME} ]; then 

     if [ -f ${CHECKEDOUT_FILE_IN_THE_VIEW} ]; then 

     diff -b ${CHECKEDOUT_FILE_IN_THE_VIEW} ${VERSIONED_FILE_NAME} > /dev/null 

     if [ $? -ne 0 ]; then 

      ##-- The checked-out file in the view is different from the corresponding 
      ##-- versioned element in the VOB. So it has to be added to the backup list. 

      echo "${VERSIONED_FILE_NAME}" >> ${F_LOG} 
     fi 
     fi 
    fi 

done 

Toute idée (s)?. TIA. Javier C.

+0

Vous devez donner à cette question de meilleurs tags, afin que les experts dans ce domaine viennent et regardent la question. La langue et la plate-forme auxquelles ce code est destiné constitueraient un bon point de départ pour le marquage. –

+0

Merci, Yi !. Je viens de faire comme vous l'avez suggéré. –

Répondre

1

Franchement, pour des vues dynamiques, une stratégie de sauvegarde plus simple serait de zip juste et sauvegarder le stockage de vue associée à ladite vue dynamique (après un 'cleartool endivew -server aDynViewTag):

  • tous les checked- Les fichiers out et private sont stockés dans le stockage de la vue (uniquement pour la vue dynamique)
  • mais il ne prendra pas en compte le fichier extrait avec (pour l'instant) aucune modification par rapport à son homologue versionné.

Si vous avez besoin d'une solution générique tant pour dynamic and snaphot views, vous pouvez consulter:
« How to find all checkedout files with ClearCase cleartool? » (un « cleartool lsco » que vous utilisez), mais vous n'avez pas besoin de calculer la dernière version pour faire un diff basé sur le système
Vous pouvez simplement:

cleartool diff -pred ${CHECKEDOUT_FILE_IN_THE_VIEW} 

Si une modification existe entre la version extraite et sa version précédente, il retournera quelque chose (pour les versions en instantané ou des vues dynamiques).
Voir cleartool diff.

+0

Merci, VonC !! –

Questions connexes