Dulwich, pure Python Git implementation(github.com)
github.com
Dulwich, pure Python Git implementation
https://github.com/jelmer/dulwich
10 comments
Slightly unrelated, I wrote a pure javascript git implementation here https://github.com/ryanackley/git-html5.js
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
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.
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
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
Note that Dulwich is old. Some old discussion: https://news.ycombinator.com/item?id=2834183
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)
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.
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
On an almost completely unrelated note, there's also Mercurial Core reimplementation in C#:
https://bitbucket.org/hglab/hgsharp
https://bitbucket.org/hglab/hgsharp