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

Version control cleartool在某些文件类型中查找与前置文件的递归差异,version-control,clearcase,difference,Version Control,Clearcase,Difference,在我的脚本中,我调用ClearCase来检查当前路径(包括所有子文件夹)中某个文件类型的任何文件是否已更改。我对cleartool一点也不熟悉,命令应该是这样的: cleartool find . -name "*.filetype" -exec 'cleartool diff -pred "$CLEARCASE_PN"' cleartool find . -name "*.filetype" -exec "cleartool diff -pred \"%CLEARCASE_PN%\"" c

在我的脚本中,我调用ClearCase来检查当前路径(包括所有子文件夹)中某个文件类型的任何文件是否已更改。我对cleartool一点也不熟悉,命令应该是这样的:

cleartool find . -name "*.filetype" -exec 'cleartool diff -pred "$CLEARCASE_PN"'
cleartool find . -name "*.filetype" -exec "cleartool diff -pred \"%CLEARCASE_PN%\""
cleartool diff-前置-递归*.filetype


作为一个返回值,我只需要一个bool:true(如果存在任何差异),false(如果没有任何变化)乍一看,您要查找的命令如下所示:

cleartool find . -name "*.filetype" -exec 'cleartool diff -pred "$CLEARCASE_PN"'
cleartool find . -name "*.filetype" -exec "cleartool diff -pred \"%CLEARCASE_PN%\""
在windows上,它将如下所示:

cleartool find . -name "*.filetype" -exec 'cleartool diff -pred "$CLEARCASE_PN"'
cleartool find . -name "*.filetype" -exec "cleartool diff -pred \"%CLEARCASE_PN%\""
Unix示例中的单引号很重要,因为否则“CLEARCASE_PN”环境变量引用将在启动命令时展开,而不是在实际触发-exec时展开

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


现在,看看你想要什么。。。我不确定它是否能达到根本目的,不管那是什么

乍一看,您要查找的命令如下所示:

cleartool find . -name "*.filetype" -exec 'cleartool diff -pred "$CLEARCASE_PN"'
cleartool find . -name "*.filetype" -exec "cleartool diff -pred \"%CLEARCASE_PN%\""
在windows上,它将如下所示:

cleartool find . -name "*.filetype" -exec 'cleartool diff -pred "$CLEARCASE_PN"'
cleartool find . -name "*.filetype" -exec "cleartool diff -pred \"%CLEARCASE_PN%\""
Unix示例中的单引号很重要,因为否则“CLEARCASE_PN”环境变量引用将在启动命令时展开,而不是在实际触发-exec时展开

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

现在,看看你想要什么。。。我不确定它是否能达到根本目的,不管那是什么

作为返回值,我只需要一个bool:如果存在任何差异,则为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
()

注意
-options
参数的用法:

opt/ions pass-through-opts
指定一个或多个不受diff直接支持的比较方法选项

这样,您只能从
cleartool diff
获得状态,这正是您想要在您的案例中测试的

因为您的应用程序显示您也有Git,所以即使在Windows上,您也可以在bash会话中轻松执行该脚本

作为返回值,我只需要一个bool:如果存在任何差异,则为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
()

注意
-options
参数的用法:

opt/ions pass-through-opts
指定一个或多个不受diff直接支持的比较方法选项

这样,您只能从
cleartool diff
获得状态,这正是您想要在您的案例中测试的


由于您的演示表明您也有Git,因此即使在Windows上,您也可以在bash会话中轻松执行该脚本。

最好不要对cleartool差异使用通配符,而是结合一个查找查询:我将在今天晚些时候发布一个答案请求的根本目的是什么?如果将此作为计划作业运行以触发生成,则几乎每次签入所有相关文件时都会返回“it changed”。(除非签入-相同是您所在位置的常见情况。)最好不要对cleartool差异使用通配符,而是结合一个查找查询:我将在今天晚些时候发布一个答案请求的根本目的是什么?如果将此作为计划作业运行以触发生成,则几乎每次签入所有相关文件时都会返回“it changed”。(除非签入-相同是您所在位置的常见情况。)