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

cleartool在某些文件类型中查找与前置文件递归的差异

  •  1
  • airborne  · 技术社区  · 9 年前

    cleartool diff-前置-递归*.filetype

    作为返回值,我只需要一个布尔值:如果存在任何差异,则为true;如果没有任何变化,则为false

    2 回复  |  直到 9 年前
        1
  •  1
  •   VonC    9 年前

    作为返回值,我只需要一个布尔值:如果存在任何差异,则为true;如果没有任何变化,则为false

    你需要一个脚本。一个简单的find+exec是不够的,因为退出状态并不是您所需要的。

    #! /bin/bash
    noChange=0  ### "cleartool diff" exit status means no difference
    files=$(cleartool find . -name "*.filetype")
    for f in ${file}; do;
      cleartool diff -pre -options "-status_only" "${f}"
      if [ $? != $noChange ]; then
        exit 0
      fi
    done
    exit 1
    

    0 is true, false is 1 in shell

    cleartool diff 的 -options

    opt/ions pass-through-opts
    

    指定diff不直接支持的一个或多个比较方法选项。

    这样,您只能从 cleartool差异

    自从你 previous question

        2
  •  -1
  •   Brian Cowan    9 年前

    cleartool find . -name "*.filetype" -exec 'cleartool diff -pred "$CLEARCASE_PN"'
    

    在windows上,它看起来是这样的:

    cleartool find . -name "*.filetype" -exec "cleartool diff -pred \"%CLEARCASE_PN%\""
    

    Unix示例中的单引号很重要,因为否则“CLEARCASE\u PN”环境变量引用将在启动命令时展开,而不是在实际触发-exec时展开。

    Windows命令行中的\%CLEARCASE\u PN%\“构造和unix上的“$CLEARCASE\ u PN”用于解释包括空格在内的文件名。