我需要找到一个命令来从Clearcase获取活动视图名称,因此我可以询问用户是否要将其设置为默认路径。以下无效。除此之外,还有其他选择吗?

out, err = subprocess.Popen([r"cleartool", "xxx", "-xxxxx"],
                             stdout=subprocess.PIPE,
                             stderr=subprocess.PIPE).communicate()
return out

最佳答案

cleartool pwv仅会给您视图的名称。
获取路径:

cleartool pwv -root


G:\可能意味着快照视图,因为默认情况下所有动态视图通常都默认安装(MVFS)在驱动器M:\上(但它们也可以替换为驱动器号)。
对于快照视图,不同于C:\的驱动器号表示快照视图的实际路径已为subst(Windows命令)到驱动器号,以缩短其路径。

参见“ To use the subst command to access snapshot views (Windows)


  使用subst命令将快照视图根目录分配给驱动器号比将快照视图作为共享目录提供更好的性能


因此,如果您在G:\norbt5_ed_hil_dev上并且想要在cleartool pwv之后的完整路径,则可以:

cleartool pwv -root


如果仅返回G:\,则需要调用命令subst以查看已分配G:\的完整路径。

subst


或者,在python中(如in the example):

os.system('subst')


并解析结果。



注意:如“ Python and ClearCase setview”中所述,pwv在Unix上以setview开头的动态视图中不起作用(在Windows中setview不存在),因为它创建了一个子进程。
如果您在使用动态视图的Unix上,请不要使用setview(如illustrated here)。
始终使用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

关于python - 在Clearcase中获取当前的工作 View ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24267665/

10-14 17:00