Giter Club home page Giter Club logo

pygit2's Introduction

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']          # gig 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

LICENSE

GPLv2 with linking exception. See COPYING for more details.

pygit2's People

Contributors

dborowitz avatar jszakmeister avatar vmg avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.