= 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 [http://git.stuge.se/?p=trac.git;a=summary;js=1 pygit2wip] branch. === Installation First you'll need to install the git bindings for Python: - [https://github.com/libgit2/libgit2 libgit2] - [https://github.com/libgit2/pygit2 pygit2] And for building `libgit2`, you'll need [http://cmake.org cmake]. ==== Windows build instructions, for Python 2.6 or 2.7 with VC9 #pygit2-msvc9 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 }}}