当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《在ClearCase中,如何从命令行查看静态视图中的旧版本文件?》经验,为你挑选了2个好方法。

在静态视图中,如何查看旧版本的文件?

给定一个空文件(empty在本例中称为)我可以颠覆diff给我看旧版本:

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

这感觉就像一个非常丑陋的黑客.我错过了一个更基本的命令吗?有没有更简洁的方法来做到这一点?

(我不想编辑配置规范 - 这非常繁琐,而且我正在尝试查看一堆旧版本.)

澄清:我想将文件的版本发送到stdout,所以我可以将它与Unix的其余部分(grep,sed等)一起使用.如果你发现了这个问题,因为你正在寻找一种方法来保存文件元素的版本,请参阅Brian的回答.



1> VonC..:

我试着看一堆旧版本

我不确定你是在谈论一个文件的 "一堆旧版本",来自几个文件的"一堆旧版本" .

要想象一个文件的几个旧版本,最简单的意思是显示其版本树(ct lsvtree -graph File),然后选择一个版本,右键单击它和' Send To'接受多个文件的编辑器(如Notepad ++).只需点击几下,您就可以看到那些旧版本.
注意:您必须具有CC6.0或7.0.1 IFix01(7.0.0和7.0.1无法'发送到'具有以下错误消息的文件" Access to unnamed file was denied")

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


[来自评论:]

什么是"cat"早期修改文件的惯用方法?

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

然后,您可以浏览(如'将目录更改为')文件的各种扩展路径.

如果你想要捕获文件分支的所有版本,你可以进入:

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

' 1',' 2',...' x'是该分支中文件的版本1,2,... x.


对于快照视图,无法访问扩展路径,因此您的"黑客"是可行的方法.

但是,这里有2条评论:

要快速显示给定分支中快照文件的所有先前版本,您可以键入:

(复制粘贴的一行版本,Unix语法:)

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"'

你可以快速获得更好的输出

(复制粘贴的一行版本,Unix语法:)

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"命令(手册页) 以下提到的布莱恩不做标准输出:

get命令仅将文件元素复制到视图中.

在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\2C:\build目录中.

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

因此,通过将结果传递给cat(或type在窗口中),您可以使用say cat(type)命令的输出执行某些操作.

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



2> 小智..:

我知道这是一个老线程...但我不能让这个颠簸得不到解决....

静态视图有一个"ct get"命令,可以完全满足您的要求.

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

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

推荐阅读
Chloemw
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有