Hacker News new | past | comments | ask | show | jobs | submit login
Dulwich, pure Python Git implementation (github.com/jelmer)
82 points by albertzeyer on Aug 7, 2013 | hide | past | favorite | 18 comments



Along the lines: https://github.com/FriendCode/gittle high-level pure-Python Git library based on Dulwich.

Note that Dulwich is old. Some old discussion: https://news.ycombinator.com/item?id=2834183


Slightly unrelated, I wrote a pure javascript git implementation here https://github.com/ryanackley/git-html5.js


On an almost completely unrelated note, there's also Mercurial Core reimplementation in C#:

https://bitbucket.org/hglab/hgsharp


What is the benefit for maintaining a git repo interface in pure python, portability?


1. hg-git, both libraries were started by githubbers to get the market of people-who-want-to-use-hg on github

2. interfacing with git repos from python, doing so through subprocess is less than enjoyable (and libgit2 basically didn't exist at the time) (and requires C code, which may be a chore e.g. on windows)


I wanted to speed up hg-git, since it's really slow for moderately-sized git repos. The slowness seems to be all in Dulwich. Isn't it more desirable then to have Python bindings to libgit?


http://www.pygit2.org/

I think there's a bunch of speeding-up hg-git work floating around, notably around Mozilla work. Some of that has been mentioned in the hg-git mailing list.


Its main usage is hg-git, which is a hg plugin that lets you use hg to interact with git repos. It would be very inconvenient to do the same thing by starting a git subprocess all the time.


And hg-github, a wrapper on top of hg-git I wrote: https://github.com/stephenmcd/hg-github



There's also https://github.com/e-butik/Gittern (made by your's truly) which is a pure-PHP Git implementation (though not as complete as Dulwich).


Shameless plug for my dulwich-backed project, grit:

https://github.com/rsgalloway/grit

- Python WSGI "Smart HTTP" server - Limited remote object proxying - Stream blob data from remote repositories - Hierarchical repos with top-down inheritance - Check out individual blobs - Python and HTTP+JSON read/write API - Supports a centralized workflow - Command line, Python and web UIs - Git not required


I'm one of dulwich's contributors and Jelmer has done some great work on Dulwich.

You might want to check out Gittle (https://github.com/FriendCode/gittle), a high level library for managing git repos, I wrote using dulwich.


Nice, but I still prefer libgit2, which has bindings for numerous languages including Python.


Weird, I was just browsing for property around there


Everything that can be implemented in JavaScript, eventually will be implemented in JavaScript


Huh? Except this is Python...


Despite being unrelated, the GP is still correct: https://github.com/creationix/js-git




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: