views:

83

answers:

3

I would like to know how to speedup the perforce auto resolve when doing integration (merge yours and theirs if no conflicts exists).

Currently is taking hours for ~5000 files when running it using a proxy server even if the proxy server has the files pre-cached.

Also p4v interface doesn't give you any hint regarding the progress of the task, you do not know if it will finish in a second or next year.

A: 

I guess you could do the resolve from the command-line, which might give you some idea that it's still progressing, and wouldn't block you from other work in P4V.

Douglas Leeder
A: 

If you know beforehand that it will for sure be a one-way resolve, maybe you could try forcing the acceptance of "theirs" or "yours" version. See "p4 help resolve" from the command-line, specifically the "-at" and "-ay" options.

I don't know for sure whether it will actually yield any performance benefits or not, but it's easy enough to try it out (and do some benchmarking).

Cwan
A: 

5000 files isn't very many to resolve, for a moderately powerful server.

Are your files binary of significant size? if your 5000 files are binaries, autoresolve will checksum them on your local hdd to compare against the checksum on the server (not the proxy, which is just relaying the information or files to you), and this can slow you down.

If you know beforehand that you are attempting a one-way resolve (eat yours on your hdd or eat theirs from the server), you can use the 'accept yours' or 'accept theirs' options to autoresolve and skip the checksum operation.

You can also contact your perforce db administrator and have them log the server actions. Maybe there are actions being run when you do your integration and resolve that are holding file locks, causing you to spin and wait until the locks are released. See the reference for 'p4 monitor show -a'.

For example, in our office, it's common on a Monday morning for everyone in the office to integrate up to their private branches and resolve.

Epu
To checksum few gigabytes of data each time is not fast anyway. Is there any way of making perforce use only the modification time of the files? In 99.999% of the cases files are not altered without changing their date/time.
Sorin Sbarnea
Perforce doesn't have an easy way to do that.If you don't want to detect changes and just use file mod times to determine whether to autoresolve them, you will have to script or program something up to get the perforce database's notion of when a file was submitted versus the modification time of the file on your hard drive. Your client workspace's modtime value can also change the modtime of synced files, so be careful if you go that route.
Epu