我希望能够检出指定文件夹下所有子目录中的所有文件。
(使用GUI进行此操作很麻烦,因为没有递归检出选项。)
我希望能够检出指定文件夹下所有子目录中的所有文件。
(使用GUI进行此操作很麻烦,因为没有递归检出选项。)
注意: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%\""
只想检出更改的文件...
现在的问题是要对所有更改过的文件进行checkin操作。这很棘手,因为通常并不是所有文件都发生了改变,而且CleaCase在尝试check in一个相同的文件时会触发错误消息。这意味着您需要使用两个命令:
ct lsco -r -cvi -fmt "ci -nc \"%n\"\n" | ct
ct lsco -r -cvi -fmt "unco -rm %n\n" | ct
(在Windows上使用命令'doskey ct=cleartool $*
'来设置别名'ct
'代表'cleartool
' )
请注意,使用ct ci -nc
将会使用用于签出阶段的注释进行签入。因此,这不是没有注释的提交(就像-nc
选项——或“无注释”——可能让人相信的那样)。
cleartool find somedir -exec "cleartool checkout -nc \"%CLEARCASE_PN%\""
另外一篇文章 "ClearCase:十个最佳脚本" 也许会有所帮助。
CLEARCASE_PN
(表示路径名)或CLEARCASE_XPN
都是由 Clearcase 脚本(例如cleartool find
)设置的环境变量。对于它们,Windows 语法(%...%
)或 Unix 语法($...
)都可以生效。 - VonC