我需要找到一个命令来从Clearcase获得活动视图名称,所以我可以询问用户是否愿意将其设置为默认路径。下面的操作不起作用。除此之外还有别的选择吗?
out, err = subprocess.Popen([r"cleartool", "xxx", "-xxxxx"],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE).communicate()
return out
cleartool pwv
将只提供视图的名称。
获取路径:
cleartool pwv -root
G:
可能意味着快照视图,因为所有动态视图通常默认挂载在驱动器M:
上(但它们也可以替换为驱动器号)。
对于快照视图,不同于C:
的盘符表示快照视图的实际路径已被subst
(Windows命令)更改为盘符,以缩短其路径。
参见"使用subst
命令访问快照视图(Windows)"
使用subst命令将快照视图根目录分配给驱动器号比将快照视图分配给共享目录提供稍微更好的性能
如果你在G:norbt5_ed_hil_dev
上,想要cleartool pwv
后面的完整路径,你可以:
cleartool pwv -root
如果只返回G:
,则需要调用命令subst
来查看分配给G:
的完整路径。
subst
或者,在python中(如示例中):
os.system('subst')
并解析结果。
注意:正如"Python和ClearCase setview
"中所解释的,pwv
不能在Unix上以setview
开始的动态视图中工作(setview
在Windows上不存在),因为创建了子进程。
如果您在Unix上使用动态视图,请不要使用setview
(如图所示)。
始终使用cleartool startview <view_tag>
,然后是动态视图的完整路径:
/view/AViewName/vobs/aVob/...
一个cleartool pwv -root
将返回/view/AViewName
。
在Windows上,如果在动态视图中使用cleartool pwv
,那么cleartool pwv -short
返回的视图名称就足够了:
在Windows上动态视图的根文件夹的路径总是:
m:view_tag
,即使视图已被subst
指定为不同的驱动器号。
你不需要-root
.
cleartool pwv
是查看活动视图名称的命令。cleartool pwv -short
给出更好的输出
您不必调用任何二进制文件来确定当前视图。在Python之外(在命令shell中=),以下操作可以工作:
echo $CLEARCASE_CMDLINE | cut -d -f2
as cleartool
sets
CLEARCASE_CMDLINE=setview eyalroz_2020_01_add_restrict
,当它把你放到set-view-shell中时。这也意味着,在Python中,您可以执行以下命令:
print( os.environ['HOME'].split(' ')[1] )