为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

MMTTMM 2019-11-04 09:55:25
在静态视图中,如何查看文件的旧版本?给定一个空文件(empty在此示例中称为),我可以颠覆diff为我展示旧版本:    %cleartool diff -ser空File @@ / main / 28这感觉就像一个丑陋的hack。我错过了更基本的命令吗?有没有更整洁的方式做到这一点?(我不想编辑配置规范-这很繁琐,我正在尝试查看一堆旧版本。)澄清:我想将文件的版本发送到stdout,所以我可以将它与Unix的其余部分(grep,sed等)一起使用。如果您发现此问题是因为您正在寻找一种保存文件的方法。元素到文件的版本,
查看完整描述

3 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

我正在尝试看一堆旧版本


我不确定您是在谈论一个文件的 “一堆旧版本”,还是来自几个文件的“一堆旧版本” 。


要显示一个文件的多个旧版本,最简单的方法是显示其版本树(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。


对于快照视图,无法访问扩展路径,因此您可以采用“ hack”方式。


但是,这里有2条评论:


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

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


cleartool查找addon.xml -ver'brtype(aBranch)&&!version(... / aBranch / LATEST)&&!version(... / aBranch / 0)'-exec'cleartool diff -ser空的“ $ CLEARCASE_XPN”'

(多行版本的可读性:)


cleartool查找addon.xml -ver'brtype(aBranch)&& 

                               !version(... / aBranch / LATEST)&& 

                               !版本(... / aBranch / 0)'

          -exec'cleartool差异-ser空“ $ CLEARCASE_XPN”'

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

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


cleartool查找addon.xml -ver'brtype(aBranch)&&!version(... / aBranch / LATEST)&&!版本(... / aBranch / 0)'-exec'cleartool diff -ser空“ $ CLEARCASE_XPN”'| ccperl -nle'$ a = $ _; $ b = $ a; $ b =〜s / ^> + \ s(?:file \ s + \ d +:\ s +)?// g;如果$ a =〜/ ^> /'打印$ b

(多行版本的可读性:)


cleartool查找addon.xml -ver'brtype(aBranch)&& 

                               !version(... / aBranch / LATEST)&& 

                               !版本(... / aBranch / 0)'

         -exec'cleartool差异-ser空“ $ CLEARCASE_XPN”'

| ccperl -nle'$ a = $ _; $ b = $ a;

               $ b =〜s / ^> + \ s(?:file \ s + \ d +:\ s +)?// g;

               如果$ a =〜/ ^> /'打印$ b

这样,输出就更好了。


在“ 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在Windows中),然后可以使用said cat(type)命令的输出做一些事情。


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


查看完整回答
反对 回复 2019-11-04
?
守着一只汪

TA贡献1872条经验 获得超3个赞

我知道这是一个旧线程...但是我无法解决这个问题。


静态视图具有“ ct get”命令,该命令完全可以满足您的需求。


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

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


查看完整回答
反对 回复 2019-11-04
  • 3 回答
  • 0 关注
  • 638 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信