Parallelize Perforce diff generation

Review Request #10554 — Created May 14, 2019 and updated — Latest diff uploaded

Information

RBTools
master
d87838e...

Reviewers

Parallelize Perforce diff generation

This change tweaks PerforceClient.diff to delegate diff generation to a
thread pool. This is motivated by the fact that Perforce diff generation
involves roundtrips to a Perforce server, and can be quite slow when
working with large changesets.

Resolves bug 4806.

  • nosetests rbtools/clients/tests/test_p4.py
  • Before this change, posting a review update for a change with 179 deleted
    files took over four minutes. After the change, my wait time is down to
    55s.