如何使用ClearCase执行递归检出?
时间:2020-03-05 18:44:44 来源:igfitidea点击:
我想签出指定文件夹的所有子目录中的所有文件。
(而且,使用GUI进行此操作很痛苦,因为没有递归检出选项)。
解决方案
回答
cleartool find somedir -exec "cleartool checkout -nc \"%CLEARCASE_PN%\""
另外,文章" ClearCase:十个最佳脚本"可能会有所帮助
回答
当心:ClearCase以文件为中心,而不是以存储库为中心(例如SVN或者CVS)。
这意味着签出所有文件很少是一个好的解决方案(对于ClearCase来说可能会相当长;))
话虽如此,这个问题是完全合理的,我想指出另一种方式:
在"指定文件夹"中打开一个" cleartool"会话:
c:\MyFolder> cleartool cleartool> co -c "Reason for massive checkout" .../*
也能做到。但作为aku的答案,它确实签出了所有内容:文件和目录...,我们可能最不需要签出目录!
cleartool find somedir -type f -exec "cleartool checkout -c \"Reason for massive checkout\" \"%CLEARCASE_PN%\""
只会签出文件...
现在的问题是检查所有已更改的内容。这是有问题的,因为通常并非所有内容都已更改,并且CleaCase在尝试检入相同文件时会触发错误消息。这意味着我们将需要2个命令:
ct lsco -r -cvi -fmt "ci -nc \"%n\"\n" | ct ct lsco -r -cvi -fmt "unco -rm %n\n" | ct
(其中'ct为'cleartool
':在Windows上键入'doskey ct = cleartool $ *`'来设置该别名)
请注意,ct ci -nc
将使用用于结帐阶段的注释进行检入。
因此,这不是没有注释的签到(例如-nc选项-或者"无注释"可能会使人相信)。