猿问

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

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


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


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

这感觉就像一个丑陋的hack。我错过了更基本的命令吗?有没有更整洁的方式做到这一点?


(我不想编辑配置规范-这很繁琐,我正在尝试查看一堆旧版本。)


澄清:我想将文件的版本发送到stdout,所以我可以将它与Unix的其余部分(grep,sed等)一起使用。如果您发现此问题是因为您正在寻找一种保存文件的方法。元素到文件的版本,

MMTTMM
浏览 639回答 3
3回答

繁花如伊

我正在尝试看一堆旧版本我不确定您是在谈论一个文件的 “一堆旧版本”,还是来自几个文件的“一堆旧版本” 。要显示一个文件的多个旧版本,最简单的方法是显示其版本树(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/[...]/maBranchcat 1cat 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 

守着一只汪

我知道这是一个旧线程...但是我无法解决这个问题。静态视图具有“ ct get”命令,该命令完全可以满足您的需求。cleartool get -to ~/foo File@@/main/28会将文件的此版本保存在中~/foo。
随时随地看视频慕课网APP
我要回答