【问题标题】:Difference between two versions in ClearCase dynamic viewClearCase 动态视图中两个版本的区别
【发布时间】:2013-01-14 19:12:08
【问题描述】:

说,我在 ClearCase 中有两个不同的动态视图。

我想知道是否有任何命令可以提供报告:
两个版本之间的“x lines added , y lines deleted , z lines changed”。

【问题讨论】:

    标签: clearcase


    【解决方案1】:

    是的,您可以使用diffstat 生成一个非常漂亮、直观的“添加 x 行,删除 y 行,更改 z 行”概览 (1)。

    以下是比较两个最新版本的 diffstat 的输出示例:

    $ diff -u diffstat-1.53 diffstat-1.54 | diffstat
     CHANGES    |   12 +++++++++++-
     diffstat.1 |    4 ++--
     diffstat.c |   57 +++++++++++++++++++++++++++++++++++++++++++++++++++------
     3 files changed, 64 insertions(+), 9 deletions(-)
    

    在你的情况下,运行

    diff -u /view/VIEW1/SOMEVOB/some/dir_or_file /view/VIEW2/SOMEVOB/some/dir_or_file | diffstat
    

    (1) 实际上,如果不分析线条的含义(计算机算法无法做到这一点),就无法确定“z 行已更改”。例如。如果旧行是int x;,而新行是int y;,是a) x 更改为y 还是b) 删除x 并添加y

    【讨论】:

    • 看起来不错,但我不明白如何使用这个文件,我下载了 diffstat.tar 文件但它没有任何 exe,我需要对下载的 tar 做更多的事情吗?使用 diff 命令的文件?
    • tar 文件是文件的存档,就像 zip 一样。该文件包含源代码,您必须自己编译。对于 Windows,可以从 www.cygwin.com 预编译许多 unix 程序。
    【解决方案2】:

    正如我之前评论的,您可以使用

    cleartool diff -serial_format prog.c prog.c@@\main\4
    

    这将格式化差异以查看所有行,而不仅仅是开头。

    【讨论】:

      【解决方案3】:

      对于动态视图,您可以使用 extended pathnamescleartool diff

      此帮助页面“To compare with a version other than the predecessor”提供了所有详细信息:

      cleartool diff prog.c prog.c@@\main\4
      

      如果您只查找摘要(仅显示添加、删除和更改的行数),则 cleartool diff 不会准确提供您想要的内容:

      默认文件比较报告以文件摘要开头,其中列出了所有输入文件及其分配为file 1file 2 等。
      如果未检测到文件之间的差异,则此列表将替换为消息文件相同。

      报告的其余部分是一系列成对差异,每个差异前面都有一个描述性标题行:

      ******************************** (file summary)
      <<< file 1: util.c@@/main/1
      >>> file 2: util.c@@/main/3
      ********************************
      ----------[after 15]------|-------[inserted 16]------ (header)
                                | char *s;        (difference)
                                                          |-
      ---------[changed 18]-----|----[changed to 19-21]---- (header)
      return ctime(&clock);     | s = ctime(&clock); (difference)
                             -  | s[ strlen(s)-1 ] = '\0';
                                | return s;
                                |-
      

      注意:

      添加 x 行、删除 y 行、z 行在两个版本之间更改的报告

      不,cleartool diff 没有:diff 格式不包含纯粹的摘要样式。

      但由于您可以在动态视图中访问任意两个版本,因此您可以使用任何想要实现特定输出的差异工具

      【讨论】:

      • 另外你可以使用 cleartool diff -serial_format file file@@\main\branch\4
      【解决方案4】:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-22
        • 1970-01-01
        • 1970-01-01
        • 2013-03-17
        • 1970-01-01
        • 2014-06-24
        • 2015-10-20
        • 2020-10-10
        相关资源
        最近更新 更多