如何在diff查看器仍处于打开状态时让cleartool diff返回命令行?

时间:2009-12-20 16:46:32

标签: shell cygwin dos clearcase cleartool

正如SO问题“Any way to use a custom diff tool with cleartool/clearcase?”的答案之一所述,我已经安装了WinMerge,并且基于表单命令在WinMerge中打开了一个单独的差异

cleartool diff -g filename filename @@ clearcase-virtual-path-to-version-I-want-to_compare-to

但是当我在cygwin中运行该命令时,在我退出WinMerge之前它不会返回命令提示符。

我想从.bat文件或shell脚本(给定ClearCase活动的更改集中的每个文件一个)执行一些此类命令,并让它在单个WinMerge中打开多个WinMerge实例或多个窗口实例

我能够做到这一次,但我已经忘记了。有人能提醒我吗?

我觉得这不是一个真正的ClearCase问题,但可能是关于从cygwin命令行产生进程的DOS或shell问题......

2 个答案:

答案 0 :(得分:2)

在行尾添加&符号以在后台运行:

cleartool diff -g filename filename@@clearcase-virtual-path-to-version-I-want-to_compare-to &

答案 1 :(得分:1)

正如Winmerge Command Line man page

中所述
  

/ s将WinMerge窗口限制为单个实例。例如,如果WinMerge已在运行,则会在同一实例中打开一个新的比较。如果没有此参数,则允许多个窗口:根据其他设置,可能会在现有窗口或新窗口中打开新的比较。

所以你可以多次调用WinMerge:

  • 通过后台流程(如troelskn suggests
  • 或通过DOS call

    调用“c:\ Program Files(x86)\ WinMerge \ WinMergeU.exe”/ s ...

应该只能启动一个WinMerge实例并继续DOS脚本。


注意:这不适用于map file I mention in this other SO answer,因为map文件需要:

  • 可执行文件(.bat.cmd无效)
  • 没有选项(WinMergeU.exe有效,WinMergeU.exe /s不会)