关于版本控制:如何使用ClearCase执行递归检出?

关于版本控制:如何使用ClearCase执行递归检出?

How do I perform a recursive checkout using ClearCase?

我想签出指定文件夹的所有子目录中的所有文件。

(而且使用GUI进行此操作很痛苦,因为没有递归检出选项)。


当心:ClearCase以文件为中心,而不是以存储库为中心(例如SVN或CVS)。

这意味着签出所有文件很少是一个好的解决方案(对于ClearCase来说可能会相当长;))

话虽如此,这个问题是完全合理的,我想指出另一种方式:

在"指定文件夹"中打开cleartool会话:

1
2
c:\\MyFolder> cleartool
cleartool> co -c"Reason for massive checkout" .../*

也能做到。但作为aku的答案,它确实签出了所有内容:文件和目录...,您可能最不需要签出目录!

1
cleartool find somedir -type f -exec"cleartool checkout -c \"Reason for massive checkout\" \"%CLEARCASE_PN%\""

只会签出文件...

现在的问题是检查所有已更改的内容。这是有问题的,因为通常并非所有内容都已更改,并且CleaCase在尝试检入相同文件时会触发错误消息。这意味着您将需要2个命令:

1
2
3
4
ct lsco -r -cvi -fmt"ci -nc \"%n\"\
" | ct
ct lsco -r -cvi -fmt"unco -rm %n\
" | ct

(" ct为" cleartool":在Windows上键入" doskey ct=cleartool $*"以设置该别名)

请注意,ct ci -nc将使用签出阶段中使用的注释签入。
因此,这不是没有注释的签到操作(例如-nc选项-或"无注释"-可以让人信服)。


1
cleartool find somedir -exec"cleartool checkout -nc \"%CLEARCASE_PN%\""

另外,文章" ClearCase:十个最佳脚本"可能会有所帮助


推荐阅读