ClearCase:在Windows下使用快照视图复制旧版本

ClearCase:在Windows下使用快照视图复制旧版本,clearcase,Clearcase,使用IBM Rational ClearCase: -我只能访问快照视图,因此没有动态视图 我想将某个变更集的所有版本复制到c:\temp。我已经在一个文件中列出了变更集的版本(几百个版本,我只需要最新的一个),我没有比这个旧的变更集更高的基线 我现在拥有的和不起作用的: #!/usr/bin/perl -w # # PROGRAM: copytest.pl $filename = "Design test123.doc"; $view = "D:\\AdminViews\\ABC_R1_RE

使用IBM Rational ClearCase: -我只能访问快照视图,因此没有动态视图

我想将某个变更集的所有版本复制到c:\temp。我已经在一个文件中列出了变更集的版本(几百个版本,我只需要最新的一个),我没有比这个旧的变更集更高的基线

我现在拥有的和不起作用的:

#!/usr/bin/perl -w
#
#  PROGRAM: copytest.pl
$filename = "Design test123.doc";
$view = "D:\\AdminViews\\ABC_R1_READ_2\\ABCD002\\ABC_DESIGN\\BLA Framework\\P0\\";
$version = "\\main\\ABC_R1_READ\\1";
$printhet = 'cleartool find . -name "' . $filename . '" -version version(' . $version. ') -exec "cmd /c copy %CLEARCASE_XPN% D:\temp\%CLEARCASE_PN%"';
system($printhet);
基本上是因为:(XPN)

更新:我再次阅读,我发现一个带有空文件的diff是没有XPN的/hack。好啊但是上面带有空的diff和一个doc给了我“0”

我不确定(你在问题中提到的)在你的情况下意味着什么,因为它只适用于动态视图(如果视图没有直接选择你需要的版本)

我在快照视图中访问扩展路径文件内容的方法在这里并不简单


那么,为什么不把目标定在同等但更简单的事情上呢

为什么不直接在
c:\temp
c:\temp\myview\u snap
)中创建另一个快照视图,其配置规范如下(您可以保留“
/
”而不是“
\
”):

这样,您应该选择:

  • 具有正确版本的
    /ABC_R1_READ_2/ABCD002/ABC_DESIGN/BLA Framework/P0
    (包括P0)下的任何元素
  • 任何没有确切版本的目录都将首先尝试在
    ABC\u R1\u READ
    上将自身作为最新版本加载,否则作为
    /main/LATEST
    加载为备用版本(始终存在)
  • 如果某个元素(文件)没有该版本,则根本不会选择它,也不会加载它
  • 任何父元素(/ABC_R1_READ_2/ABCD002/ABC_DESIGN/BLA Framework),如果没有正确的版本,将被选择为
    /main/LATEST
    (始终存在)
  • 任何其他元素(相关树之外)都将被忽略,未选中
刚刚测试过:效果很好


注:

  • BLA Framework
    ”是一个带有空格的目录,因此需要在使用它的地方添加双引号
  • 加载规则只能加载vob
    ABC\u R1\u READ\u 2
    :由于“
    -none
    ”规则不会选择您不需要的内容,因此无论如何都不会加载它们
我不确定(您在问题中提到的)在您的情况下意味着什么,因为它只适用于动态视图(如果视图没有直接选择您需要的版本)

我在快照视图中访问扩展路径文件内容的方法在这里并不简单


那么,为什么不把目标定在同等但更简单的事情上呢

为什么不直接在
c:\temp
c:\temp\myview\u snap
)中创建另一个快照视图,其配置规范如下(您可以保留“
/
”而不是“
\
”):

这样,您应该选择:

  • 具有正确版本的
    /ABC_R1_READ_2/ABCD002/ABC_DESIGN/BLA Framework/P0
    (包括P0)下的任何元素
  • 任何没有确切版本的目录都将首先尝试在
    ABC\u R1\u READ
    上将自身作为最新版本加载,否则作为
    /main/LATEST
    加载为备用版本(始终存在)
  • 如果某个元素(文件)没有该版本,则根本不会选择它,也不会加载它
  • 任何父元素(/ABC_R1_READ_2/ABCD002/ABC_DESIGN/BLA Framework),如果没有正确的版本,将被选择为
    /main/LATEST
    (始终存在)
  • 任何其他元素(相关树之外)都将被忽略,未选中
刚刚测试过:效果很好


注:

  • BLA Framework
    ”是一个带有空格的目录,因此需要在使用它的地方添加双引号
  • 加载规则只能加载vob
    ABC\u R1\u READ\u 2
    :由于“
    -none
    ”规则不会选择您不需要的内容,因此无论如何都不会加载它们

@cogmios:我确认任何配置规范中包含
-none
“非选择规则”将生成一些错误“无法加载,未选择版本”。这是意料之中的(也将被忽略)。您还将得到额外的目录,因为我无法知道这些旧目录(版本不正确)可能包含或可能不包含版本正确的文件。@cogmios:注意,这些额外的目录应该是空的,然后应该安全地删除,以获得最终的“清除”结果。@cogmios:我确认每次使用
%CLEARCASE\u PN%
时,如果不在前后加双引号(
\\\”
如果您在字符串中,或者仅在
\”
中),则在文件名上加空格可能会失败。@cogmios:如果在视图中执行,应该可以工作。您有什么错误?@cogmios:exact:副本将尝试访问扩展路径名,而扩展路径名在目标快照视图中不可用。在您的情况下,应该更改脚本以尝试从源快照视图复制同一文件,并使用反映要复制合并的源标签的配置规范。@cogmios:我确认任何配置规范中包含
-none
“非选择规则”将生成一些错误“无法加载,未选择版本”。这是意料之中的(也将被忽略)。您还将得到额外的目录,因为我无法知道这些旧目录(版本不正确)可能包含或可能不包含版本正确的文件。@cogmios:注意,这些额外的目录应该是空的,然后应该安全地删除,以获得最终的“清除”结果。@cogmios:我确认每次使用
%CLEARCASE\u PN%
时,如果不在前后加双引号(
\\\”
如果您在字符串中,或者仅在
\”
中),则在文件名上加空格可能会失败。@cogmios:如果在视图中执行,应该可以工作。您有什么错误?@cogmios:exact:副本将尝试访问扩展路径名,
element * CHECKEDOUT
element "/ABC_R1_READ_2/ABCD002/ABC_DESIGN/BLA Framework/P0/..." /main/ABC_R1_READ/1
element -directory "/ABC_R1_READ_2/ABCD002/ABC_DESIGN/BLA Framework/P0/..." /main/ABC_R1_READ/LATEST
element -directory "/ABC_R1_READ_2/ABCD002/ABC_DESIGN/BLA Framework/P0/..." /main/LATEST
element "/ABC_R1_READ_2/ABCD002/ABC_DESIGN/BLA Framework/P0/..." -none
element /ABC_R1_READ_2/ABCD002 /main/ABC_R1_READ/1
element /ABC_R1_READ_2/ABCD002 /main/LATEST
element /ABC_R1_READ_2/ABCD002/ABC_DESIGN /main/ABC_R1_READ/1
element /ABC_R1_READ_2/ABCD002/ABC_DESIGN /main/LATEST
element "/ABC_R1_READ_2/ABCD002/ABC_DESIGN/BLA Framework" /main/ABC_R1_READ/1
element "/ABC_R1_READ_2/ABCD002/ABC_DESIGN/BLA Framework" /main/LATEST
element * -none
load /ABC_R1_READ_2