答案 0 :(得分:3)
我不建议设置视图,因为setview
本身会产生一个新进程
我真的更喜欢在starting the view(/view/viewTag/aVob/...
)
cleartool startview viewTag
在我看来,“生成过程”问题使得所有事情都过于复杂,并解释了为什么你有这样的技术手段:
执行
cleartool setview cmview
后出现的所有命令都不会被处理,因为shell会被exec()
生成,后者会用新程序替换当前程序。这意味着当前进程的文本和代码段(在本例中是包含所有命令的脚本)将被执行的程序替换,该程序是通过运行
cleartool setview cmview
调用的shell。 因此,除了调用setview
之外,没有任何命令被处理。
-exec
变量将启动子shell进程并在指定的动态视图中调用指定的命令。一旦命令完成,控制将返回到父shell-exec
不会在父shell进程中设置视图-exec
生成的子shell将继承父shell进程的Environment变量;但是,在子shell中创建的Environment变量不会传回父shell。
因此,如果真的想要使用setview
,您可以(不是我自己直接测试):
setview
setview
调用将-exec
参数作为另一个python脚本(当/vobs
配置了所述设置视图的内容时,执行您要执行的操作。< / LI>
答案 1 :(得分:1)
旧线程,但我只是必须解决这个问题,所以也许是帮助。
在你的python脚本中
process = subprocess.Popen('usr/atria/bin/cleartool setview viewName')
(out, err) = process.communicate('python script2Name')
.communicate可以传递新命令,就好像你将它传递给一个新的shell(终端)。