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