Re:Dulwich, pure Python Git implementation
by masklinn on Wednesday August 07, 2013 @06:40AM
(#6171887)
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)
Re:Dulwich, pure Python Git implementation
by jordigh on Wednesday August 07, 2013 @09:09AM
(#6172527)
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?
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.
Re:Dulwich, pure Python Git implementation
by lucian1900 on Wednesday August 07, 2013 @06:23AM
(#6171834)
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.
- 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
Note that Dulwich is old. Some old discussion: https://news.ycombinator.com/item?id=2834183
https://bitbucket.org/hglab/hgsharp
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 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.
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
You might want to check out Gittle (https://github.com/FriendCode/gittle), a high level library for managing git repos, I wrote using dulwich.