对搁置文件使用以下p4命令时,差异也会附加在输出的末尾。
> p4 describe -S 1529307
Change 1529307 by who@client on 2015/09/10 14:03:56 *pending*
Comment
Shelved files ...
... //depot/projects/afile.py#4 edit
Differences ...
==== //depot/projects/afile.py#4 (text) ====
1c1
< testing1-2-3-4-5-6-7
---
> testing1-2-3-4-5-6-7-8-9-10
然而,当在P4Python中执行类似操作时,从运行(&#39; describe -S&#39;)函数返回的数据不包含版本的差异。
{
'status': 'pending',
'code': 'stat',
'depotFile0': '//depot/projects/afile.py',
'changeType': 'public',
'action0': 'edit',
'fileSize0': '28',
'shelved': '',
'client': 'client',
'user': 'who',
'time': '144036',
'rev0': '4',
'digest0': '8C425B5CF',
'data': '',
'type0': 'text',
'change': '1529307',
'desc': 'Comment\n'
}
我能想到的唯一解决方法是使用此处的depot-path查找文件,然后将其与之前版本的版本区分开来。但是我仍然认为应该有一种更简单的方法将这些信息嵌入到P4Python中。
谢谢!
答案 0 :(得分:2)
我想出的当前解决方案如下。我希望P4Python尽快提供一种自动化方式,以便可视化搁置变化的差异。 如果您有更好的解决方案,请随时告诉我。
data = p4obj.run('describe -S ' + str(changelist))[0]
files = []
i = 0
while data.has_key('depotFile'+str(i)):
files.append((data['depotFile'+str(i)],data['rev'+str(i)],data['action'+str(i)]))
i += 1
for f in files:
name = f[0]
oldRev = str(int(f[1]))
oldFile = tempfile.mktemp()
oldFilespec = '%s#%s' % (name, oldRev)
p4.runinteractive('print -q %s > %s' %(oldFilespec, oldFile))
editedFile = tempfile.mktemp()
editedFilespec = '%s@=%s'%(name, changelist)
p4.runinteractive('print -q %s > %s' %(editedFilespec, editedFile))
DiffTwoFiles(oldFile, editedFile, label1=oldFilespec, label2=editedFilespec)
答案 1 :(得分:0)