87 lines
2.1 KiB
Markdown
87 lines
2.1 KiB
Markdown
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:
|
|
|
|
<http://libgit2.github.com>
|
|
|
|
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 <dborowitz@google.com>
|
|
* J. David Ibáñez <jdavid@itaapy.com>
|
|
|
|
|
|
LICENSE
|
|
==============
|
|
|
|
GPLv2 with linking exception. See COPYING for more details.
|