我正在尝试查看一堆旧版本。
我不确定你是在谈论一个文件的“一堆旧版本”,还是来自“多个”文件的“一堆旧版本”。
要可视化一个文件的几个旧版本,最简单的方法是显示其版本树 (ct lsvtree -graph File
),然后选择一个版本,右键单击它并将其“发送到”接受多个文件的编辑器(例如Notepad++)。通过几次点击,您将可以查看这些旧版本。
注意:您必须拥有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到x。
对于“快照视图”,无法访问“扩展路径”,因此您的“hack”方式是可行的。
不过,在这里有两点需要注意:
- 要快速显示给定分支中快照文件的所有先前修订版本,您可以键入:
(适用于复制粘贴的单行版本,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 =~/^>/'
$b =~ s/^>+\s(?:file\s+\d+:\s+)?//g; 如果 $a 以 '>' 开头,就打印出 $b。
这样做输出的效果会更好。
"cleartool get" 命令(man page) 在此下面提到 ,由 Brian 提供,不会输出到 stdout:
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
(或者在 Windows 中是type
)中,你就可以对该命令的输出做一些处理。
cmd-context get –to C:\build\foo.c.temp \dev\hello_world\foo.c@@\main\2 | type C:\build\foo.c.temp