【发布时间】: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