
Hi Vincent,
great stuff!
I've also got an in-progress toy git clone called ght:
http://github.com/kfish/ght. It only reads, no write support and no
revspec parsing. I tried to keep close to the git design, using mmap
and Ptr-based binary search to read pack indices etc. Doing so seems
fairly un-Haskelly but turned out surprisingly neat, what with Haskell
being the world's finest imperative programming language and all.
Conrad.
On 5 October 2011 05:15, Vincent Hanquez
Hi Haskellers,
I just want to announce the hit project [1], which is a reimplementation of low level git operations to read *AND* write to a git repository. It support reading from anything i threw at it (loose objects, packed objects, deltas), a subset of revisions specifier (man gitrevisions), and writing new objects (blob, tree, commit, tag).
I don't necessarily want to re-implement git itself (although patches welcome if someone want to go in this direction), and as such the project is a bit of a toy to investigate git storage (for another project of mine) and superseeding my own libgit project (for yet another project). Yet it should be completely functional and have good performance.
A few word of the implementation: it's very IO based at the moment; The way things are done by git, doesn't necessarily cope with pure and nice stuff if performance need to follow. That said it should still be easier to understand than reading the git source :-)
Any comments welcome,
[1] http://hackage.haskell.org/package/hit/
-- Vincent
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe