1

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

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

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

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

4

2 回答 2

0

我宁愿尝试不使用cleartool setview.

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

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

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


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

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

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

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

于 2013-11-12T09:18:23.310 回答
-1

1- Use:

cleartool startview <your_view_tag>

instead of

cleartool setview <your_view_tag>

Then you will be able to access your view simply using:

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

and eventually do the same thing with another view and using the same or an other vob. This method will not open an other shell and you will get rid of any exit command in your script

于 2013-11-12T11:50:13.550 回答