【问题标题】:How can I add commands to be executed when setting a view?设置视图时如何添加要执行的命令?
【发布时间】:2020-05-18 08:23:09
【问题描述】:

使用 cleartool,当您 cleartool setview 时,显然会打开一个子外壳(您可以 exit 它并离开视图)。我想知道 - 当这个子 shell 启动时,我怎样才能获得更多要执行的命令或进行设置?当然,我不是指在 任何 shell 启动时执行的代码,只是在 cleartool 启动一个时执行。

【问题讨论】:

    标签: shell hook clearcase cleartool subshell


    【解决方案1】:

    cleartool setview 在生成其子 shell 时不会获取任何内容(任何 shrc/bashrc)。

    我一直建议against setview,正是为了避免子shell问题。

    得到一个脚本会更容易:

    • 执行/获取其他命令
    • 切换完整视图路径/view/AViewName/vobs/aVob/...,而不是依赖/vobs setview chroot 技巧。

    或者,使用setview-exec 选项来获取设置执行脚本。

    【讨论】:

    • “chroot 技巧”是指 /view/AViewName 存在 chroot 的事实?此外,理论上我的 shell 可以检测到父进程是什么,如果它是 ClearCase/Cleartool 则采取相应的行动 - 不是吗?
    • @einpoklum 是的 chroot。并且子shell (tldp.org/LDP/abs/html/subshells.html) 不会调用任何东西。在该子 shell 中执行的脚本可能确实检测到它的父 shell。与直接在 current shell 中使用完整视图路径相比,这似乎很复杂。
    【解决方案2】:

    根据 setview 的手册页,它需要一个 -exec 参数。

    https://www.ibm.com/support/knowledgecenter/SSSH27_9.0.1/com.ibm.rational.clearcase.cc_ref.doc/topics/ct_setview.htm

    如果您愿意,可以使用它来运行脚本。正如@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

    根据个人经验,如果您的脚本是这样做的,那么在审核构建期间访问视图之间通常不是一个好主意。但是有些人在源代码控制下使用通用视图来触发脚本...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-26
      • 2012-10-13
      • 2012-06-13
      • 2015-03-21
      • 1970-01-01
      • 2013-05-15
      • 1970-01-01
      相关资源
      最近更新 更多