On Tuesday 12 June 2007 03:13:17 Han-Wen Nienhuys wrote: > Benjamin Sergeant escreveu: > > A perforce command with all the files in the repo is generated to get > > all the file content. > > Here is a patch to break it into multiple successive perforce command > > who uses 4K of parameter max, and collect the output for later. > > > > It works, but not for big depos, because the whole perforce depo > > content is stored in memory in P4Sync.run(), and it looks like mine is > > bigger than 2 Gigs, so I had to kill the process. > > General idea of the patch is ok. some nits: > > + chunk = '' > > + filedata = [] > > + for i in xrange(len(files)): > > why not > > for f in files: > > ? It seems 'i' is used a bit later. Is there a nicer way to express this in python? > > + f = files[i] > > + chunk += '"%s#%s" ' % (f['path'], f['rev']) > > + if len(chunk) > 4000 or i == len(files)-1: > > 4k seems reasonable enough, but can you take the min() with > os.sysconf('SC_ARG_MAX') ? > > Can you address this and resend so we can apply the patch? > Thanks. Since I ran into the very problem of a too long commandline myself yesterday I took the liberty of adding the SC_ARG_MAX bit to Benjamin's patch and comitting it then. Simon
Attachment:
signature.asc
Description: This is a digitally signed message part.