如何退出清除案例视图而不是脚本



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

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

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

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

我宁愿尝试不使用cleartool setview.

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

  • 您不必退出脚本中的任何进程。
  • 在脚本中调用 setview 时,您可以避免创建子 shell:这解释了为什么您的路径不正确。
    请参阅"Python 和 ClearCase setview",了解子 shell 导致的问题的类型示例。

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


为了更好地理解为什么在使用 setview 时无法完全执行 shell,请参阅"从 shell 脚本设置视图不会处理脚本中的其余命令"

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

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

如果您直接使用启动视图的完整路径,则不会创建任何子 shell,也不会遇到该问题:将调用您的最后一个cd /ccase/src

1- 用途:

cleartool startview <your_view_tag>

而不是

cleartool setview <your_view_tag>

然后,您只需使用以下命令即可访问您的视图:

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

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

最新更新