← Back to team overview

dulwich-users team mailing list archive

My Dulwich roadmap

 

After a few months of not too much development, I've come up with some new
Dulwich functionality I want to get started on.

First, I think we need a good abstraction for walking between sets of
commits, providing the functionality of 'git log'. In addition to providing
'dulwich log', other git implementations use this abstraction internally for
doing all the commit walking for other algorithms (e.g. on the server side).
If you look at the git-log(1) manpage, there is a *lot* of functionality in
there, so I would only expect a subset of it to get implemented in the near
future.

Part of log walking is rename detection (though I'll probably end up
implementing it first). Jelmer, I don't know if you've implemented some of
this already for bzr-git, but if you have, I'd be happy to take a look at
that.

The other big thing I'd like to do is get delta generation for packfiles
working. I've seen the commented-out code in pack.py, so hopefully that just
needs some cleanup and testing. Of course, C git's packing heuristics are
pretty sophisticated, so there's likely lots of room for improvement on top
of that.

Now, Shawn Pearce has told me from his experience with JGit that
implementing all the features of log walking and delta generation can easily
take many person-months to do correctly and efficiently. As you may expect,
I'm looking to get some subset of the functionality working in a
non-optimized way in a shorter timeframe. So, as usual, expect feature
improvements to be small and incremental at first.

Follow ups