[p4] problem with programming perforce via python
Roger Day
roger.day at globalgraphics.com
Wed Jan 10 09:59:33 PST 2007
Thanks, I know about the p4 interfaces - I did not have a good experience
with the p4perl interface so I'm slightly allergic to interfaces. And I
solved my problem, thankyou.
Roger
At 08/01/2007 18:36:46, perforce-user-bounces at perforce.com wrote:
>Roger Day wrote:
>> I'm trying to do the following
>>
>> log = logging.getLogger("hope2p4")
>> cmd =self.p4+' change -i -o'
>> p = Popen(cmd, stdout=PIPE, stdin=PIPE, close_fds=True, bufsize=1,
>> shell=True)
>> lcmd = 'Change: new\n'
>> (author, reason, bugnr)=metadata
>> lcmd += 'Description:\n\t['+ bugnr+'] '+reason+'\n'
>> lcmd += 'Files: \n\t'+f+'\n\n'
>> log.info("lcmd: "+lcmd)
>> p.stdin.write( lcmd )
>> p.stdin.close()
>> out =p.stdout.read()
>> (pre, nr, end)=out.split(' ')
>> return nr
>>
>> A changelist number is returned, but the changelist doesn't contain any
>> files.
>>
>> Once I've created the change-list I then go on to submit in a similar
>> fashion but can't because the changelist contains no files.
>>
>> Any help gratefully received.
>
>I'm sure lots of people will point this out, but there are nifty Python
>bindings for p4 that you might want to consider instead of doing
>everything yourself:
>http://public.perforce.com/guest/robert_cowham/perforce/API/python/index.html
>
>It handles all the marshalling & parsing for you, so you can do stuff
like
>
>p4c.run_edit ('//depot/some/file')
>f = file (p4c.run_where ('//depot/some/file') [0] ['path'], 'w')
>f.write ('Changed by p4ython')
>f.close()
>change = p4c.run_change ('-o') [0]
>change ['Description'] = 'My description'
>p4c.input = change
>p4c.run_submit ('-i')
>
>--Nick
>_______________________________________________
>perforce-user mailing list - perforce-user at perforce.com
>http://maillist.perforce.com/mailman/listinfo/perforce-user
>
More information about the perforce-user
mailing list