如何退出clearcase视图而不是脚本?

时间:2013-11-12 09:14:27

标签: shell clearcase

问题是我必须在触摸后触摸ClearCase视图中的特定文件,我必须退出视图。
现在我必须重新调整相同的视图 现在,当我重置时,它将以不同的模式打开。

到目前为止,我已经在shell脚本中尝试了这个。执行此脚本时,我在视图XYZ

#!/bin/sh
touch /ccase/.host;
exit;
ct setview XYZ
cd /ccase/src

我面临的问题是第3行(exit;) 我是从剧本出来而不是从视野中出来的。

2 个答案:

答案 0 :(得分:0)

我宁愿在不使用cleartool setview的情况下尝试。

直接在视图的完整路径中访问您的数据:/view/XYZ/vobs/yourVob
那样:

  • 您不必退出脚本中的任何进程。
  • 您在脚本中调用setview时避免创建子shell:这可以解释您的路径不正确的原因。 有关子shell导致的问题类型的示例,请参阅“Python and ClearCase setview”。

这显然假设您的动态视图已经已启动(如果没有,cleartool startview)。


为了更好地了解使用setview时无法完全执行shell的原因,请参阅“Setting into a view from a shell script does not process the remaining commands in the script

  

在上面的脚本中,执行cleartool setview XYZ后出现的所有命令都没有被处理,因为shell是用exec()生成的,用新程序替换当前程序
  这意味着当前进程文本和代码段(在本例中是包含所有命令的脚本)将被执行的程序替换,该程序是通过运行cleartool setview XYZ调用的shell。   因此,除了调用setview之外,没有任何命令被处理。

在你的情况下,永远不会调用cd / ccase / src。

如果您直接使用已启动视图的完整路径,则不会创建任何子shell,也不会出现此问题:将调用您的上一个cd /ccase/src

答案 1 :(得分:-1)

1-使用:

cleartool startview <your_view_tag>

而不是

cleartool setview <your_view_tag>

然后您就可以使用以下方式访问您的视图:

cd /view/<your_view_tag>/<your_vob_name>
touch <yourfile>

并最终使用另一个视图并使用相同或其他vob执行相同的操作。 此方法不会打开其他shell,您将在脚本中删除任何exit命令