|
# Standard Python and P4Python |
|
# IronPython and P4.Net |
|
|
|
|
|
|
|
import clr |
1 |
|
|
from System import Array, String |
|
|
|
clr.AddReferenceToFile('P4API.dll') |
|
|
|
|
|
import p4 as P4API |
|
import P4API |
|
|
|
|
|
p4 = P4API.P4() |
|
p4 = P4API.P4Connection() |
2 |
p4.parse_forms() |
|
|
|
p4.connect() |
|
p4.Connect() |
|
|
|
|
|
lname = 'P4NetTestingSample' |
|
lname = 'P4NetTestingSample' |
|
|
|
|
|
# build my label |
|
# build my label |
|
labelForm = p4.fetch_label(lname) |
|
labelForm = p4.Fetch_Form('label', lname) |
|
labelForm['Description'] = 'Created for P4.Net sample' |
|
labelForm['Description'] = 'Created for P4.Net sample' |
3 |
view = ['//guest/shawn_hladky/...'] |
|
view = Array[String](['//guest/shawn_hladky/...']) |
|
labelForm['View']
= view |
|
labelForm.ArrayFields['View'] = view |
|
res = p4.save_label(labelForm) |
|
res = p4.Save_Form(labelForm) |
|
|
|
|
4 |
if len(p4.errors)
> 0: |
|
if res.HasErrors(): |
for e in
p4.errors: print e |
|
for e in
res.Errors: print e |
|
|
|
|
|
# My list of changes.
This is totally arbitrary |
|
# My list of changes.
This is totally arbitrary |
|
changes=['5774',
'5680', '5636', '5444'] |
|
changes=['5774',
'5680', '5636', '5444'] |
|
|
|
|
|
sorted_changes = changes.sort() |
|
sorted_changes = changes.sort() |
|
|
|
|
|
# dictionary: keyed by file, value = revision |
|
# dictionary: keyed by file, value = revision |
|
filerevs = {} |
|
filerevs = {} |
|
|
|
|
|
# spin the description on each file |
|
# spin the description on each file |
5 |
for chg in p4.run_describe('-s', *changes): |
|
for chg in p4.Run('describe', '-s',
*changes): |
6 |
depotFiles = chg['depotFile'] |
|
depotFiles = chg.ArrayFields['depotFile'] |
revisions
= chg['rev'] |
|
revisions = chg.ArrayFields['rev'] |
|
for i in range(0, len(depotFiles)): |
|
for i in range(0, len(depotFiles)): |
|
key,value =
depotFiles[i], revisions[i] |
|
key,value =
depotFiles[i], revisions[i] |
|
filerevs[key]=value |
|
filerevs[key]=value |
|
|
|
|
|
# convert the dictionary to a list |
|
# convert the dictionary to a list |
|
flist = [] |
|
flist = [] |
|
for k,v in filerevs.items(): |
|
for k,v in filerevs.items(): |
|
flist.append("%s#%s" % (k,v)) |
|
flist.append("%s#%s" % (k,v)) |
|
|
|
|
|
# now I want to run in non-parsed mode |
|
|
|
p4.disconnect() |
|
|
|
p4 = P4API.P4() |
|
|
7 |
p4.connect() |
|
|
|
|
|
|
|
out = p4.run('labelsync', '-l',
lname, *flist) |
|
out = p4.RunUnParsed('labelsync', '-l',
lname, *flist) |
|
|
|
|
|
for s in out: print s |
|
for s in out: print s |
|
|
|
|
|
# delete the label to keep the public depot clean :-) |
|
# delete the label to keep the public depot clean :-) |
|
p4.run('label',
'-d', lname) |
|
p4.RunUnParsed('label', '-d',
lname) |
|
|
|
|
|
p4.disconnect() |
|
p4.Disconnect() |
|
|
|
|