【发布时间】:2020-05-18 08:23:09
【问题描述】:
使用 cleartool,当您 cleartool setview 时,显然会打开一个子外壳(您可以 exit 它并离开视图)。我想知道 - 当这个子 shell 启动时,我怎样才能获得更多要执行的命令或进行设置?当然,我不是指在 任何 shell 启动时执行的代码,只是在 cleartool 启动一个时执行。
【问题讨论】:
标签: shell hook clearcase cleartool subshell
使用 cleartool,当您 cleartool setview 时,显然会打开一个子外壳(您可以 exit 它并离开视图)。我想知道 - 当这个子 shell 启动时,我怎样才能获得更多要执行的命令或进行设置?当然,我不是指在 任何 shell 启动时执行的代码,只是在 cleartool 启动一个时执行。
【问题讨论】:
标签: shell hook clearcase cleartool subshell
cleartool setview 在生成其子 shell 时不会获取任何内容(任何 shrc/bashrc)。
我一直建议against setview,正是为了避免子shell问题。
得到一个脚本会更容易:
/view/AViewName/vobs/aVob/...,而不是依赖/vobs setview chroot 技巧。或者,使用setview 的-exec 选项来获取设置并执行脚本。
【讨论】:
/view/AViewName 存在 chroot 的事实?此外,理论上我的 shell 可以检测到父进程是什么,如果它是 ClearCase/Cleartool 则采取相应的行动 - 不是吗?
根据 setview 的手册页,它需要一个 -exec 参数。
如果您愿意,可以使用它来运行脚本。正如@Vonc 提到的,setview 是一个 chroot 环境,视图的根目录(/view/myview)将显示 / 文件系统以透明地支持 chroot。
如果您在 Unix 上编写脚本,并且想要遵循 VonC 关于不使用 setview 的建议,则需要在脚本中设置/检测视图。 “cleartool pwv -wdview”会告诉你当前工作目录的视图上下文。 (见https://www.ibm.com/support/knowledgecenter/SSSH27_9.0.1/com.ibm.rational.clearcase.cc_ref.doc/topics/ct_pwv.htm)
根据个人经验,如果您的脚本是这样做的,那么在审核构建期间访问视图之间通常不是一个好主意。但是有些人在源代码控制下使用通用视图来触发脚本...
【讨论】: