clearcase: резервная копия только для измененных извлеченных элементов во всех представлениях - PullRequest
1 голос
/ 06 сентября 2010

Регулярное резервное копирование с эффективным размером только для только измененные извлеченные элементы во всех представлениях были бы для нас отличной вещью, поскольку значительная часть определенных динамических представлений и снимков не может быть включена в ежедневныеполитика резервного копирования.

Следующий код ksh близок к тому, что нам нужно для динамического просмотра, но он тривиально предполагает, что первая строка в файле config-spec для представления всегда сначала выбирает извлеченный элемент(* элемент * CHECKEDOUT *).В целом, он не будет работать хорошо.

Для каждого версионного файла в представлении мы хотели бы иметь возможность добавить его в список резервного копирования только , если он отличается от последнего соответствующего версионногоэлемент в VOB, который выбран для этого представления.(Только если это было разработано в представлении).

[Решение должно быть действительным и для снимков]

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

Есть идеи?ТИА.Хавьер С.

1 Ответ

1 голос
/ 06 сентября 2010

Честно говоря, для динамических представлений более простой стратегией резервного копирования было бы просто сжать и сохранить резервную копию хранилища представлений, связанного с указанным динамическим представлением (после 'cleartool endivew -server aDynViewTag):

  • все извлеченные и личные файлы хранятся в хранилище просмотра (только для динамического просмотра)
  • , но он не будет учитывать извлеченный файл (пока) без изменений по сравнению с версионным аналогом.

Если вам нужно общее решение как для динамического просмотра, так и для снимков , тогда вы можете обратиться к:
' Как найти все извлеченные файлы с ClearCase cleartool? ' (вы используете 'cleartool lsco'), но вам не нужно вычислять ПОСЛЕДНЮЮ версию для создания системного сравнения. 1016 * Вы можете просто:

cleartool diff -pred ${CHECKEDOUT_FILE_IN_THE_VIEW}

Если существует какая-либо модификация между извлеченной версией и ее предыдущей версией, она возвращает что-то (для версий в снимках или динамических представлениях).
См. cleartool diff.

...