代码之家  ›  专栏  ›  技术社区  ›  Matt Curtis

在ClearCase中,如何从命令行在静态视图中查看文件的旧版本?

  •  16
  • Matt Curtis  · 技术社区  · 17 年前

    给定一个空文件(称为 empty 在这个例子中)我可以颠覆 diff 要显示旧版本,请执行以下操作:

        % cleartool diff -ser empty File@@/main/28
    

    (我不想编辑配置规范-这相当乏味,我正在尝试查看一些旧版本。)

    澄清 :我想将文件的版本发送到stdout,这样我就可以将它与Unix的其余部分(grep、sed等)一起使用。如果您发现这个问题是因为您正在寻找将元素的版本保存到文件的方法,请参阅 Brian's answer .

    5 回复  |  直到 9 年前
        1
  •  15
  •   Community Mohan Dere    6 年前

    我想看看一些旧版本

    我不确定你说的是不是“一堆旧版本”的 一个文件 ,“一堆旧版本” 文件夹。

    要可视化一个文件的多个旧版本,最简单的方法是显示其版本树( ct lsvtree -graph File ),然后选择一个版本,右键单击它并 Send To '一个接受多个文件(如记事本++)的编辑器。单击几下,您将看到这些旧版本。
    注意:您必须让CC6.0或7.0.1 IFix01(7.0.0和7.0.1无法“发送到”带有以下错误消息的文件” Access to unnamed file was denied ")

    但是为了可视化不同文件的几个旧版本,我建议使用动态视图并编辑该视图的配置规范(而不是您当前使用的快照视图),以便快速选择所有这些旧文件(希望通过一个简单的选择规则,如' element * aLabel ')


    [来自评论:]

    “cat”文件早期版本的惯用方法是什么?

    惯用的方法是通过 视图(使用与现有快照视图完全相同的配置规范进行配置)。

    然后,您可以浏览(如“将目录更改为”)各种 一个文件的名称。

    如果要对文件分支的所有版本进行cat,请执行以下操作:

    cd /view/MyView/vobs/myVobs/myPath/myFile@@/main/[...]/maBranch
    cat 1
    cat 2
    ...
    cat x
    

    1 ', ' 2 x '作为版本1、2。。。该分支中文件的x。


    暂时 快照视图 这个 ,所以你的“黑客”才是出路。

    然而,这里有两条评论:

    cleartool find addon.xml -ver 'brtype(aBranch) && !version(.../aBranch/LATEST) && ! version(.../aBranch/0)' -exec 'cleartool diff -ser empty "$CLEARCASE_XPN"'
    

    cleartool find addon.xml -ver 'brtype(aBranch) && 
                                   !version(.../aBranch/LATEST) && 
                                   ! version(.../aBranch/0)' 
              -exec 'cleartool diff -ser empty "$CLEARCASE_XPN"'
    
    • 你可以很快得到一个更好的输出

    cleartool find addon.xml -ver 'brtype(aBranch) && !version(.../aBranch/LATEST) && ! version(.../aBranch/0)' -exec 'cleartool diff -ser empty "$CLEARCASE_XPN"' | ccperl -nle '$a=$_; $b = $a; $b =~ s/^>+\s(?:file\s+\d+:\s+)?//g;print $b if $a =~/^>/'
    

    (多行版本,便于阅读:)

    cleartool find addon.xml -ver 'brtype(aBranch) && 
                                   !version(.../aBranch/LATEST) && 
                                   ! version(.../aBranch/0)' 
             -exec 'cleartool diff -ser empty "$CLEARCASE_XPN"'
    | ccperl -nle '$a=$_; $b = $a; 
                   $b =~ s/^>+\s(?:file\s+\d+:\s+)?//g;
                   print $b if $a =~/^>/'
    

    这样,输出就更好了。


    这个 " cleartool get " command (man page) mentioned below 通过 Brian 不要做标准动作:

    在UNIX或Linux系统上,复制 /dev/hello_world/foo.c@@/main/2

    cmd-context get –to foo.c.temp /dev/hello_world/foo.c@@/main/2
    

    在Windows系统上,复制 \dev\hello_world\foo.c@@\main\2 进入 C:\build

    cmd-context get –to C:\build\foo.c.temp \dev\hello_world\foo.c@@\main\2
    

    所以也许比,通过管道将结果传输到 cat (或 type 在windows中),然后可以对所述的输出执行某些操作 类型 )指挥部。

    cmd-context get –to C:\build\foo.c.temp \dev\hello_world\foo.c@@\main\2 | type C:\build\foo.c.temp 
    
        2
  •  13
  •   Matt Curtis    15 年前

    我知道这是一条古老的线索…但我不能让这条鞭打未解决。。。。

    静态视图有一个“ct get”命令,它完全执行您要查找的内容。

    cleartool get -to ~/foo File@@/main/28
    

    将在中保存此版本的文件 ~/foo .

        3
  •  2
  •   Chris Arguin    17 年前

    [根据第一条评论改写]

    Clearcase中的所有文件,包括版本,都可以在虚拟目录结构中使用。我对静态视图不太熟悉,但我相信它们仍然会经历虚拟的fs;它们只是得到了不同的更新。

    在这种情况下,您只需执行以下操作:

       cat File@@/main/28
    

        4
  •  1
  •   Hans Olsson    14 年前

    如果文件是Clearcase元素,并且 cat File 工作正常,并且视图设置正确,然后重试:

    cat File@@/main/28
    

    ct shell

    尝试键入:

    ct ls -l File
    

        5
  •  -1
  •   Justin    16 年前

    ct外壳cat文件@版本