Edgewall Software

Improving performance for Trac's git support

Using python bindings for git rather than the git command-line

This could be an alternative backend that would avoid the cost of spawning git executables and parsing their standard output.

The trade-offs could be the following, bindings vs. command-line:

  • (+) faster (but how much?)
  • (?) robustness
    • (+) no pipe handling and dangling processes (is this still problematic?)
    • (-) crashes?
  • (-) memory usage (risk of memory leaks?)

Peter Stuge started a conversion of the backend, see his early work in his pygit2wip branch.


First you'll need to install the git bindings for Python:

And for building libgit2, you'll need cmake.

Windows build instructions, for Python 2.6 or 2.7 with VC9

Follow the instructions given in this section: https://github.com/libgit2/pygit2#building-on-windows

At this point you're ready to build the bindings themselves:

$ git clone https://github.com/libgit2/pygit2
$ cd pygit2
$ ls $LIBGIT2
bin include lib
$ python setup.py install
Last modified 12 years ago Last modified on Jun 19, 2012, 9:30:08 PM

Attachments (2)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.