Carlos Martín Nieto b671c5110e Implement Access for Geef.Tree
Make Geef.Tree its own record so we can define the protocol
implementation for it. There shouldn't be any generic functions you'd
want to call on a tree record.
2013-06-12 00:05:04 +02:00
2013-06-11 16:34:02 +02:00
2013-06-12 00:05:04 +02:00
2013-06-11 16:34:02 +02:00
2013-06-11 16:34:02 +02:00
2013-03-02 12:34:21 +01:00
2013-06-11 17:35:30 +02:00
2013-06-05 01:49:31 +02:00
2012-08-14 00:50:44 +02:00

Geef (Git NIF)

Geef is a simple Erlang NIF that exposes some of the libgit2 library functions to Erlang.

INSTALLING AND RUNNING

First you need to install libgit2:

$ git clone git://github.com/libgit2/libgit2.git
$ cd libgit2
$ make
$ make install

Now, if you have Erlang OTP_R13B04 installed, you can compile this NIF to run in it.

$ git clone git://github.com/carlosmn/geef.git
$ cd geef
$ make
$ mix # if you want to build the elixir modules

The API looks basically like this:

{ok, Repo} = geef_repo:open(".").
Workdir = geef_repo:workdir(Repo).
{ok, Blob} = geef_blob:lookup(Repo, geef_oid:parse("abcde...")).

Elixir

There are wrappers for elixir which make use of some elixir-specific things, like Repository.open!, or Reference.resolve!.

alias Geef.Repository
alias Geef.Reference
repo = Repository.open!(".")
ref = Reference.lookup!(repo. "HEAD") |> Reference.resolve!

Of course, you could also do

ref = Repository.open! "." |> Reference.lookup! "HEAD" |> Reference.resolve!

but then you would leak the repository process.

CONTRIBUTING

Fork carlosmn/geef on GitHub, make it awesomer (preferably in a branch named for the topic), send a pull request.

AUTHORS

Scott Chacon schacon@gmail.com Carlos Martín Nieto cmn@dwim.me

LICENSE

MIT.

Description
No description provided
Readme 357 KiB
Languages
C 44%
Erlang 39.6%
Elixir 16.2%
Makefile 0.2%