如何在所有版本的Clearcase文件中进行文本搜索?

时间:2019-04-10 14:06:17

标签: clearcase

背景

在Clearcase中,您可以通过在Linux终端中输入以下命令来获取文件的图形版本树。

ct lsvtree -gra <filename>

这将打开一个带有许多选项的界面,以查看文件的两个版本之间的差异。

问题

从图形树界面中,我试图查找文件的任何版本中是否存在字符串。该字符串在某些时候丢失了,我想弄清楚那个“某个点”在哪里。

问题

如何在所有版本的文件中使用大写字母进行文本搜索?

2 个答案:

答案 0 :(得分:1)

如果使用动态视图,则可以利用其通过版本扩展的命名方式访问元素版本的优势。以“ foo.c @@ / main / branch / 1”为例,您将“ foo.c @@”作为目录结构的,并带有“ main”和“ branch”是子目录,“ 1”是“文件”

您可以通过以下操作来使用它:

  • cd转换为“ foo.c @@”
  • 执行搜索。

例如:

cd foo.c@@
grep -rl "target-string" *

获取不带字符串的文件:

cd foo.c@@
grep -rlv "target-string" *

您还可以使用lsvtree输出来增强脚本中的搜索,但这是执行此操作的最简单技巧。这适用于Unix和Windows,但如果目标字符串包含多个单词,则可能要使用标准Windows“ findstr”之外的其他东西,因为findstr会奇怪地处理它们: findstr“ foo bar oof” 将打印行包含“ foo”,“ bar”或“ oof”,即使使用/ L表示“ literal”,有时也行。

如果您使用快照或Web视图,这将非常棘手,并且需要一个脚本来迭代lsvtree的输出。

答案 1 :(得分:1)

正如我mentioned before(2015年)一样,ClearCase中没有等效的git log -S or -G (pickaxe search)

完成镐查找(在Git中),以指出过去的修订版本,其中添加或删除了字符串。
但是:您需要为ClearCase编写等效功能的脚本。

由于cleartool lsvtree向您显示了给定文件的所有版本,因此您可以从最新版本开始执行cleartool annotate,以查看添加行的时间和版本。 br /> 如果该行包含您的字符串,则此版本将是相关的。

如果最新版本不包含您的字符串,请对先前版本重复此过程(如果包含您的字符串,请对该先前版本执行cleartool annotate)。