代码之家  ›  专栏  ›  技术社区  ›  mR_fr0g

在ClearCase中查找最常用的编辑文件

  •  2
  • mR_fr0g  · 技术社区  · 15 年前

    我们目前正在计划一个质量改进练习,我希望以ClearCaseVOB中最常用的编辑文件为目标。由于我们刚刚经历了一个错误修复阶段,所以最常用的编辑文件应该能够很好地指示最容易出现错误的代码在哪里,因此最需要质量改进。

    有人知道是否有一种方法可以获得大多数编辑文件的前100个列表?最好包括在多个分支上进行的编辑。

    2 回复  |  直到 11 年前
        1
  •  1
  •   Community Dunja Lalic    7 年前

    (之前的答案是 simpler case: single branch )

    由于“大多数项目开发并非都发生在一个分支上,因此版本号不一定意味着最容易编辑”,因此“获取跨所有分支的签入数的方法”将是:

    • 搜索自上次错误修复阶段以来创建的所有版本,
    • 按文件排序,
    • 然后按发生次数。

    沿着这条线的东西:

    C:\Prog\cc\test\test>ct find -all -type f -ver "created_since(16-Oct-2009)" -exec "cleartool descr -fmt """%En~%Sn\n""""""%CLEARCASE_XPN%"""" | grep -v "\\0" | awk -F ~ "{print $1}" | sort | uniq -c | sort /R | head -100
    

    或者,对于UNIX语法:

    $ ct find -all -type f -ver 'created_since(16-Oct-2009)' -exec 'cleartool descr -fmt "%En~%Sn\n" "%CLEARCASE_XPN%"' | grep -v "/0"  | awk -F ~ '{print $1}' | sort | uniq -c | sort -rn | head -100
    
    • 将日期替换为标记错误修复阶段开始的标签之一。
    • 同样,请注意' %CLEARCASE_XPN% '以容纳文件名中的空格。
    • 这里 %CelaseCyxPn% '使用而不是' %CLEARCASE_PN% 因为我们需要每一个版本。
    • grep -v "/0" 在此处排除版本0( /main/0 , /main/myBranch/0 ,…)
    • awk -F ~ "{print $1}" 仅用于打印每行的第一部分:
      C:\Prog\cc\test\test\a.txt~\main\mybranch\2 变成 C:\Prog\cc\test\test\a.txt
    • 从那里开始计数和排序:
      • sort 确保所有相同的行都分组
      • uniq -c 删除重复的行,并在每一行前面加上所述重复的计数。
      • sort -rn (或) sort /R 对于Windows)在顶部具有最多编辑的文件
      • head -100 只保留100个编辑最多的文件。

    同样,gnuwin32对于一行程序的Windows版本也很有用。

        2
  •  1
  •   Community Dunja Lalic    7 年前

    (见答案) more complicated case: multiple branches )

    首先,使用动态视图:更容易、更快地更新其内容并修改其配置规范规则。

    如果您的bug修复是在一个分支中进行的,那么从一个给定的标签开始,使用以下配置规范设置一个动态视图:

    element * .../MY_BRANCH/LATEST
    element * MY_STARTING_LABEL
    element * /main/LATEST
    

    然后找到所有文件及其当前版本号(与编辑次数密切相关)

    ct find . -type f -exec "cleartool desc -fmt """%Ln\t\t%En\n""" """%CLEARCASE_PN%""""|sort /R|head -100
    

    这是Windows语法(不是周围的三个“双引号”)。 %CLEARCASE_PN% 以便在文件名中容纳空格。

    head '命令来自 GnuWin32 图书馆。
    编辑最多的版本位于列表的顶部。

    Unix版本为:

    $ ct find . -type f -exec 'cleartool desc -fmt "%Ln\t\t%En\n" "$CLEARCASE_PN"' | sort -rn | head -100
    

    编辑最多的版本将在顶部。

    不要忘记,对于度量标准而言,原始数据是不够的, trends are important too .