【问题标题】:How do I perform a recursive checkout using ClearCase?如何使用 ClearCase 执行递归结帐?
【发布时间】:2013-02-15 18:36:57
【问题描述】:

我想查看指定文件夹所有子目录中的所有文件。

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

【问题讨论】:

    标签: version-control clearcase


    【解决方案1】:

    注意: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选项——或“无评论”——可以让人相信)。

    【讨论】:

      【解决方案2】:
      cleartool find somedir -exec "cleartool checkout -nc \"%CLEARCASE_PN%\""
      

      还有一篇文章“ClearCase: The ten best scripts”可能会有所帮助

      【讨论】:

      • 如果您使用的是 Linux,请将 %CLEARCASE_PN% 替换为 $CLEARCASE_PN
      • @Peehy 好点。 CLEARCASE_PN(用于 PathName)或 CLEARCASE_XPN 都是由 clearcase 脚本设置的环境变量(例如 cleartool find)。 Windows 语法 (%...%) 或 Unix 语法 ($...) 对他们有效。
      猜你喜欢
      • 2023-03-25
      • 2010-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-04
      • 1970-01-01
      • 2011-06-07
      相关资源
      最近更新 更多