问题是我必须在触摸 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
命令