aboutsummaryrefslogtreecommitdiffstats
path: root/.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/74cccfbf-069d-4e99-8cab-adaa35f9a2eb
diff options
context:
space:
mode:
authorW. Trevor King <wking@tremily.us>2012-09-13 19:07:59 -0400
committerW. Trevor King <wking@tremily.us>2012-09-13 19:07:59 -0400
commit503951e7f60f24bd30f97f3c7f1b366c6fb30250 (patch)
treefe8d4b79bdf2aa4352950916dc21d0e73cfefbba /.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/74cccfbf-069d-4e99-8cab-adaa35f9a2eb
parentf727a1458954320781a311f6f9fe8b8a016b61e4 (diff)
downloadbugseverywhere-503951e7f60f24bd30f97f3c7f1b366c6fb30250.tar.gz
storage:vcs:git: move Git to ExecGit and add PygitGit using pygit2.
If `pygit2` is installed, use it (via PygitGit) rather than calling the stand-alone `git` executable for all the Git (via ExecGit) for all the Git storage stuff. This saves one serializing/deserializing and process setup/teardown. I timed each test suite by commenting out one of the `make_vcs_testcase_subclasses()` calls at the end of `git.py` and running $ time python test.py libbe.storage.vcs.git The ExecGit tests ran in 13.7s and the PygitGit tests ran in 3.6s for a 3.8x speedup. I had to stretch pygit2 a bit to get a clean fit, so if you want to test this, you'll need to build pygit2 with the following merge requests: Add 'pygit2.__version__' for easy access from client software. https://github.com/libgit2/pygit2/pull/128 commit 0238fb72dfdf2a2308f2da347717cbaafddc4b83 signature: Add keyword argument parsing to Signature(). https://github.com/libgit2/pygit2/pull/129 commit c934858b629f40221406f34166dd77e881b9d5fd repository: add Repository.revparse_single() https://github.com/libgit2/pygit2/pull/131 commit 3afdc8b2f59ed137531671fedde36f3a39cbcc9d
Diffstat (limited to '.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/74cccfbf-069d-4e99-8cab-adaa35f9a2eb')
0 files changed, 0 insertions, 0 deletions