问题是我必须在触摸后触摸ClearCase视图中的特定文件,我必须退出视图。
现在我必须重新调整相同的视图
现在,当我重置时,它将以不同的模式打开。
到目前为止,我已经在shell脚本中尝试了这个。执行此脚本时,我在视图XYZ
#!/bin/sh
touch /ccase/.host;
exit;
ct setview XYZ
cd /ccase/src
我面临的问题是第3行(exit;
)
我是从剧本出来而不是从视野中出来的。
答案 0 :(得分:0)
我宁愿在不使用cleartool setview
的情况下尝试。
直接在视图的完整路径中访问您的数据:/view/XYZ/vobs/yourVob
那样:
setview
时避免创建子shell:这可以解释您的路径不正确的原因。这显然假设您的动态视图已经已启动(如果没有,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
命令