【问题标题】:How to diff all modifications of all checkout files under a directory recursively with Clearcase?如何使用 Clearcase 递归地区分目录下所有签出文件的所有修改?
【发布时间】:2020-04-07 23:19:22
【问题描述】:

我正在使用 ClearCase。我检查了一个目录下的几个文件,一些文件在其子目录中,一些在子子目录中。

我想要的是递归地列出我对这个特定目录下这些签出文件的所有修改的差异。

我目前做的是:

for file in $(cleartool lsco -recurse -me -cview -fmt "%n\n"); do 
    cleartool diff -serial_format -pred $file; 
done

我使用 bash for 循环,但我也许可以使用简单的 ClearCase 命令来完成。

【问题讨论】:

    标签: recursion diff clearcase


    【解决方案1】:

    OP 建议使用list of checked out files,但无法在一个 cleartool 命令中找到差异。
    xargs (used here) 可能更容易

    cleartool lsco -recurse -me -cview -fmt "%n\n" | xargs -n 1 cleartool diff -serial_format -pred 
    

    【讨论】:

    • 感谢您的帮助,但似乎存在一些问题。 Clearcase diff 没有 -nc 选项,可能是版本问题? diff 要求至少比较两个对象。
    • @user3093552 我已经修复了 find 命令,并建议了 bash 循环的替代方法。
    • 再次感谢。对于 find 案例,我遇到了一些错误,例如:cleartool: Error: Unable to access "./ncs_trace.h@@": Is a directory. 对于 xargs,似乎应该删除尾随的 $file。虽然即使删除了它,但正如我测试的那样,它转储了许多远远超过我的修改的行,不知道为什么。
    • @user3093552 我已将查找限制为仅文件(而不是目录)。我已经删除了$file(错字)
    • 对于 find 案例,我仍然收到如下错误:cleartool: Error: Unable to access "./ncs_trace.h@@": Is a directory.,即使使用-type f;对于 xargs 情况,它将所有文件放在一起,如下所示:******************************** <<< file 1: /nec01_core/cmw/noss/src/ncbmain.c@@/main/vz_int_rl50/dev_rh45_tomix_sdm/0 >>> file 2: ncbmain.c >>> file 3: necqueue.c ********************************
    猜你喜欢
    • 2017-10-31
    • 1970-01-01
    • 2010-10-04
    • 2010-10-19
    • 2010-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多