haskell wrapper for git
Haskell
Switch branches/tags
Nothing to show
Pull request Compare This branch is 10 commits behind vincenthz:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Lib
.gitignore
LICENSE
README
Setup.hs
libgit.cabal

README

hs-libgit is a haskell wrapper for git.

It provides lowlevel operations (list/cat object, ..) and some high level operation
(commit, checkout, diff...). it requires the git binary available on the system.

when time permit, the wrapper will be made as a binding on top of libgit2.

Example usage, in ghci

Prelude>:m +Lib.Git
Prelude Lib.Git> :m +System.Directory
Prelude Lib.Git System.Directory> createDirectoryIfMissing True "/tmp/repodir"
Prelude Lib.Git System.Directory> let cfg = makeConfig "/tmp/repodir" Nothing
Prelude Lib.Git System.Directory> runGit cfg (initDB False)

You will now have an initialised git repo in /tmp/repodir. 

TODO:
- clean the commit/tree parsing
- make it more robust/better error checking
- split modules into multiples files (lowlevel, monad, highlevel)