diff options
author | W. Trevor King <wking@tremily.us> | 2012-09-13 19:07:59 -0400 |
---|---|---|
committer | W. Trevor King <wking@tremily.us> | 2012-09-13 19:07:59 -0400 |
commit | 503951e7f60f24bd30f97f3c7f1b366c6fb30250 (patch) | |
tree | fe8d4b79bdf2aa4352950916dc21d0e73cfefbba /.be/bea86499-824e-4e77-b085-2d581fa9ccab/bugs/8fc5d6fa-cae1-451f-9817-3e4da6d0aac1/comments/432e994f-3759-42bf-a80d-7cd626c7ce7c | |
parent | f727a1458954320781a311f6f9fe8b8a016b61e4 (diff) | |
download | bugseverywhere-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/8fc5d6fa-cae1-451f-9817-3e4da6d0aac1/comments/432e994f-3759-42bf-a80d-7cd626c7ce7c')
0 files changed, 0 insertions, 0 deletions