pygit2 - libgit2 bindings in Python ===================================== pygit2 is a set of Python 2.5+ bindings to the libgit2 linkable C Git library. INSTALLING AND RUNNING ======================== First you need to install the latest version of libgit2. You can find platform-specific instructions to build the library in the libgit2 website: Next, make sure you have the required library dependencies for pygit2: OpenSSL and ZLib. For instance, in Debian-based systems run: $ sudo apt-get install zlib1g-dev libssl-dev Also, make sure you have Python 2.5+ installed together with the Python development headers. When those are installed, you can install pygit2: $ git clone git://github.com/libgit2/pygit2.git $ cd pygit2 $ python setup.py install $ python setup.py test USING ====== Initialize a Git repository: >>> from pygit2 import init_repository >>> bare = False >>> repo = init_repository('test', bare) Open a repository: >>> from pygit2 import Repository >>> repo = Repository('test/.git') Index read: >>> index = repo.index >>> index.read() >>> sha = index['path/to/file'].sha # from path to sha >>> blob = repo[sha] # from sha to blob Iterate over all entries of the index: >>> for i in range(0, len(index)): ... entry = index[i] ... print entry.path, entry.sha Index write: >>> index.add('path/to/file') # git add >>> del index['path/to/file'] # git rm >>> index.write() # don't forget to save the changes Revision walking: >>> from pygit2 import GIT_SORT_TIME >>> for commit in repo.walk(sha, GIT_SORT_TIME): ... print commit.sha CONTRIBUTING ============== Fork libgit2/pygit2 on GitHub, make it awesomer (preferably in a branch named for the topic), send a pull request. AUTHORS ============== * David Borowitz * J. David Ibáñez LICENSE ============== GPLv2 with linking exception. See COPYING for more details.