在静态视图中,如何查看旧版本的文件?
给定一个空文件(empty
在本例中称为)我可以颠覆diff
给我看旧版本:
% cleartool diff -ser empty File@@/main/28
这感觉就像一个非常丑陋的黑客.我错过了一个更基本的命令吗?有没有更简洁的方法来做到这一点?
(我不想编辑配置规范 - 这非常繁琐,而且我正在尝试查看一堆旧版本.)
澄清:我想将文件的版本发送到stdout,所以我可以将它与Unix的其余部分(grep,sed等)一起使用.如果你发现了这个问题,因为你正在寻找一种方法来保存文件元素的版本,请参阅Brian的回答.
我试着看一堆旧版本
我不确定你是在谈论一个文件的 "一堆旧版本",来自几个文件的"一堆旧版本" .
要想象一个文件的几个旧版本,最简单的意思是显示其版本树(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\2
到C:\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
我知道这是一个老线程...但我不能让这个颠簸得不到解决....
静态视图有一个"ct get"命令,可以完全满足您的要求.
cleartool get -to ~/foo File@@/main/28
将保存此版本的文件~/foo
.