Python 在Clearcase中获取当前工作视图

Python 在Clearcase中获取当前工作视图,python,subprocess,clearcase,Python,Subprocess,Clearcase,我需要找到一个命令从Clearcase获取活动视图名称,这样我就可以询问用户是否愿意将其设置为默认路径。以下方法不起作用。除此之外还有其他选择吗 out, err = subprocess.Popen([r"cleartool", "xxx", "-xxxxx"], stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicat

我需要找到一个命令从Clearcase获取活动视图名称,这样我就可以询问用户是否愿意将其设置为默认路径。以下方法不起作用。除此之外还有其他选择吗

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

cleartool pwv
是查看活动视图名称的命令。
cleartool pwv-short
提供了更好的输出。

cleartool pwv
是查看活动视图名称的命令。
cleartool pwv-short
提供了更好的输出。

只提供视图的名称。
要获取路径,请执行以下操作:

cleartool pwv -root
G:\
可能意味着快照视图,因为默认情况下,所有动态视图(MVF)通常安装在驱动器
M:\
上(但也可以替换为驱动器号)。
对于快照视图,与
C:\
不同的驱动器号意味着快照视图的实际路径已被
subst
(Windows命令)更改为驱动器号,以缩短其路径

见“

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

因此,如果您在
G:\norbt5\u ed\u hil\u dev
上,并且希望在
cleartool pwv
之后获得完整路径,您可以:

cleartool pwv -root
如果这只返回
G:\
,则需要调用命令
subst
,以查看分配了
G:\
的完整路径

subst
或者,在python中(作为):

并解析结果


注意:“
pwv
在Unix上以
setview
开始的动态视图中不起作用(
setview
在Windows上不存在),因为会创建一个子进程
如果您在Unix上使用动态视图,请不要使用
setview
(as)。
始终使用,然后使用动态视图的完整路径:

/view/AViewName/vobs/aVob/...
然后,
cleartool pwv-root
将返回
/view/AViewName


在Windows上,如果在动态视图中使用
cleartool pwv
,则
cleartool pwv-short
返回的视图名称就足够了:

Windows上动态视图的根文件夹路径始终为:

m:\view_tag
即使视图已被
替换为不同的驱动器号。
您不需要
-root

将只提供视图的名称。
要获取路径,请执行以下操作:

cleartool pwv -root
G:\
可能意味着快照视图,因为默认情况下,所有动态视图(MVF)通常安装在驱动器
M:\
上(但也可以替换为驱动器号)。
对于快照视图,与
C:\
不同的驱动器号意味着快照视图的实际路径已被
subst
(Windows命令)更改为驱动器号,以缩短其路径

见“

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

因此,如果您在
G:\norbt5\u ed\u hil\u dev
上,并且希望在
cleartool pwv
之后获得完整路径,您可以:

cleartool pwv -root
如果这只返回
G:\
,则需要调用命令
subst
,以查看分配了
G:\
的完整路径

subst
或者,在python中(作为):

并解析结果


注意:“
pwv
在Unix上以
setview
开始的动态视图中不起作用(
setview
在Windows上不存在),因为会创建一个子进程
如果您在Unix上使用动态视图,请不要使用
setview
(as)。
始终使用,然后使用动态视图的完整路径:

/view/AViewName/vobs/aVob/...
然后,
cleartool pwv-root
将返回
/view/AViewName


在Windows上,如果在动态视图中使用
cleartool pwv
,则
cleartool pwv-short
返回的视图名称就足够了:

Windows上动态视图的根文件夹路径始终为:

m:\view_tag
即使视图已被
替换为不同的驱动器号。

您不需要
-root

您不必调用任何二进制文件来确定当前视图。在Python外部(=在命令shell中),以下功能可以正常工作:

echo $CLEARCASE_CMDLINE | cut -d\  -f2
作为
cleartool
集合

CLEARCASE_CMDLINE=setview eyalroz_2020_01_add_restrict
当它将您放入集合视图外壳中时。这也意味着,在Python中,您可以执行以下操作:

print( os.environ['HOME'].split(' ')[1] )

您不必调用任何二进制文件来确定当前视图。在Python外部(=在命令shell中),以下功能可以正常工作:

echo $CLEARCASE_CMDLINE | cut -d\  -f2
作为
cleartool
集合

CLEARCASE_CMDLINE=setview eyalroz_2020_01_add_restrict
当它将您放入集合视图外壳中时。这也意味着,在Python中,您可以执行以下操作:

print( os.environ['HOME'].split(' ')[1] )

我尝试了以下命令:subprocess.Popen([r“cleartool”、“pwv”、“-short”],stdout=subprocess.PIPE,stderr=subprocess.PIPE).communicate(),但它返回了“**无**”。我打开了ClearCase,所以我不确定问题出在哪里。在终端(Python之外)中键入
cleartool pwv-short
会得到什么?通常,“**无**”表示您没有视图集。cleartool:错误:无法获取当前视图的视图信息:没有此类文件或目录。视图“集”是什么意思?我有在ClearCase中可见的视图快捷方式此ClearCase是在Windows还是Linux上?在Linux中,键入
cleartool setview
我尝试了以下命令:subprocess.Popen([r“cleartool”、“pwv”、“short”],stdout=subprocess.PIPE,stderr=subprocess.PIPE)。communicate(),但它返回了“**NONE**”。我打开了ClearCase,所以我不确定问题出在哪里。在终端(Python之外)中键入
cleartool pwv-short
会得到什么?通常,“**无**”表示您没有视图集。cleartool:错误:无法获取当前视图的视图信息:没有此类文件或目录。视图“集”是什么意思?我的视野很短