【问题标题】:clearcase: Backup for only modified checked-out elements in all viewsclearcase:仅备份所有视图中已修改的签出元素
【发布时间】:2010-09-07 20:58:02
【问题描述】:

对所有视图中的修改后的检出元素进行定期的大小有效备份对我们来说是一件好事,因为大量定义的动态/快照视图不能包含在每日备份策略。

下面的 ksh 代码接近动态视图所需的代码,但它假设视图的 config-spec 文件中的第一行总是首先选择已签出的元素 ( *element * 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

有什么想法吗? TIA。 哈维尔 C.

【问题讨论】:

  • 你需要给这个问题更好的标签,这样这个领域的专家就会过来看看问题。此代码所针对的语言和平台将是标记的良好起点。
  • 谢谢你,易!我刚刚按照你的建议做了。

标签: version-control unix shell clearcase cleartool


【解决方案1】:

坦率地说,对于动态视图,更简单的备份策略是压缩和备份与所述动态视图关联的视图存储(在“cleartool endivew -server aDynViewTag”之后):

  • 所有签出和私有文件都存储在视图存储中(仅适用于动态视图)
  • 但它不会考虑签出的文件,与版本控制的对应文件相比(尚未)进行任何修改。

如果您需要dynamic and snaphot views的通用解决方案,那么您可以参考:
'How to find all checkedout files with ClearCase cleartool?'(您正在使用的 'cleartool lsco'),但您不需要计算最新版本来制作基于系统的差异。
你可以简单地:

cleartool diff -pred ${CHECKEDOUT_FILE_IN_THE_VIEW}

如果签出版本与其先前版本之间存在任何修改,它将返回一些内容(对于快照或动态视图中的版本)。
请参阅 cleartool diff

【讨论】:

    猜你喜欢
    • 2011-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多