Commit Graph

58 Commits

Author SHA1 Message Date
Carlos Martín Nieto
05e1781356 More sensible signature functions
Remove all of the older functions. Bind git_signature_default() and
implement the _now() equivalent in erlang.
2013-10-15 22:31:13 +02:00
Carlos Martín Nieto
0d24afb089 Get rid of the tagged OID
This means we no longer accept any iolist in some of the functions,
but we might bring it back later.

There is also a new function, geef_ref:create_symbolic() to create
symbolic references, since we can no longer differentiate between a
name and an OID.
2013-09-03 20:37:00 +02:00
Carlos Martín Nieto
15ba2dd65f Add support for index_entry's size field 2013-09-01 19:56:35 +02:00
Carlos Martín Nieto
e39a17fe43 Allow retrieval of index entries
This is still very basic, as we only actually load three fields into
the record.
2013-09-01 15:30:15 +02:00
Carlos Martín Nieto
70867b9615 Keep references purely in erlang
Refernces contain three pieces of data which we already keep in the
erlang record. Keep the repository it belongs to in the record as well
and remove resource in the NIF. This makes the code easier to reason
about, as we don't need to keep any reference counts or GC the C
struct.

This does mean we cannot re-use references across geef_repo restarts,
but that's probably a good thing.
2013-08-31 17:23:46 +02:00
Carlos Martín Nieto
bb35fce5cc Implement ref iterators 2013-08-09 23:25:55 +02:00
Carlos Martín Nieto
52a6f72fef Provide geef_tree:count/1 2013-07-24 23:55:54 +02:00
Carlos Martín Nieto
328b2c4b4b Allow getting a tree entry by position 2013-06-12 02:34:53 +02:00
Carlos Martín Nieto
9d222df593 Initial signature test 2013-06-11 16:34:02 +02:00
Carlos Martín Nieto
042156d843 Bind ref name dwim 2013-06-07 17:55:16 +02:00
Carlos Martín Nieto
d21d2cb9b0 Keep an object's id in the record
We have the information there anyway, so don't make us allocate a new
binary every time.
2013-06-05 22:15:40 +02:00
Carlos Martín Nieto
9f500e3fa0 Release binaries after creating writable copy 2013-06-04 23:37:03 +02:00
Carlos Martín Nieto
0e644be825 Add tag-peeling support 2013-05-30 03:39:51 +02:00
Carlos Martín Nieto
523b20d70a ref: return {ok, Name} tuple for the name in the NIF 2013-05-27 12:55:04 +02:00
Carlos Martín Nieto
b79c606725 Remove references to ref type filtering 2013-05-27 12:55:04 +02:00
Carlos Martín Nieto
2ebfc7b4d3 Complete the definition of the index_entry record
Most of the values are ignored, though
2013-05-27 12:55:04 +02:00
Carlos Martín Nieto
604388a76d Keep the reference name as part of the record 2013-05-13 11:46:12 +02:00
Carlos Martín Nieto
3f4d51c0e1 Simple version of index_add 2013-05-03 23:42:49 +02:00
Carlos Martín Nieto
a5bbfa681b Use the right function for the index ctor 2013-05-03 23:22:11 +02:00
Carlos Martín Nieto
616a358dc7 Prefer binary realloc to self-managed buffers
Use erlang's allocator and simplify the code by writing into the
buffer we're going to give back anyway.

Also introduce a function to NUL-terminate iolist buffers, which can
avoid memory copying.
2013-05-02 13:16:02 +02:00
Carlos Martín Nieto
ef7d2d5490 Return {error, enonmem} in OOM situations 2013-05-02 11:51:28 +02:00
Carlos Martín Nieto
0aa11d8532 Allow creation of refs 2013-05-02 06:24:15 +02:00
Carlos Martín Nieto
0127730f6b Add geef_index:read_tree() 2013-04-26 14:34:15 +02:00
Carlos Martín Nieto
0a71085a40 Introduce geef_index 2013-04-26 11:47:40 +02:00
Carlos Martín Nieto
65227fe85b Move nif functions to geef_nif 2013-04-25 11:05:57 +02:00
Carlos Martín Nieto
d0034b1142 Add a test for revwalk 2013-04-10 19:08:05 +02:00
Carlos Martín Nieto
58aff1e129 Add revwalk support 2013-04-02 17:13:18 +02:00
Carlos Martín Nieto
011068f51c Expose reference_name_to_id 2013-04-02 07:30:02 +02:00
Carlos Martín Nieto
7de2b5f4b6 Return error messages as binaries 2013-04-02 06:29:07 +02:00
Carlos Martín Nieto
f41ff25a59 Expose git_libgit2_version 2013-04-01 15:08:05 +02:00
Carlos Martín Nieto
2dcd701c53 Implement a dummy upgrade function
We don't keep anything in priv, so there's nothing for us to do.
2013-03-31 22:24:20 +02:00
Carlos Martín Nieto
2d1d1456ec Bind repository discovery 2013-03-31 22:20:35 +02:00
Carlos Martín Nieto
aa1ba5bfa5 Have geef_odb:exists take an oid properly 2013-03-31 21:29:25 +02:00
Carlos Martín Nieto
125e132af9 Add geef_odb:write 2013-03-30 15:11:05 +01:00
Carlos Martín Nieto
7987f35e58 Add a way to get a blob's size and content 2013-03-02 14:34:16 +01:00
Carlos Martín Nieto
9b2a053848 Add object id lookup 2013-03-02 03:27:40 +01:00
Carlos Martín Nieto
b5b68cce8b Allow getting a tree entry 2013-03-02 02:56:58 +01:00
Carlos Martín Nieto
b2e366027b Add geef_commit:tree() 2013-02-17 23:45:03 +01:00
Carlos Martín Nieto
134c052f71 Accept iolist in geef_oid:parse 2013-02-17 21:27:57 +01:00
Carlos Martín Nieto
6d34f99520 Add geef_commit:tree_id 2013-02-17 21:25:32 +01:00
Carlos Martín Nieto
d71c6ff702 Add a way to look up objects 2013-01-30 00:16:52 +01:00
Carlos Martín Nieto
5a58abc4a0 Let geef_ref:target/1 handle both oid and symrefs 2013-01-25 15:22:14 +01:00
Carlos Martín Nieto
5ede846988 Accepts paths as iolists 2013-01-25 00:20:42 +01:00
Carlos Martín Nieto
b42a02b0c5 Get rid of unused variables 2013-01-24 23:57:02 +01:00
Carlos Martín Nieto
7d76f18a55 More complete ref bindings 2013-01-24 23:55:42 +01:00
Carlos Martín Nieto
468695adb5 reference_id -> reference_target 2013-01-24 23:36:17 +01:00
Carlos Martín Nieto
6dea8e6930 Make it more erlang-esque
pmods are going away, use prefixed namespaces.
2013-01-23 16:27:42 +01:00
Carlos Martín Nieto
7ac46fbf5e Add reference_type() 2013-01-23 06:16:49 +01:00
Carlos Martín Nieto
71eea735d2 Add oid_parse(Sha) 2013-01-22 15:49:12 +01:00
Carlos Martín Nieto
401573ea60 Add geef:oid_fmt(Oid) 2013-01-21 16:22:08 +01:00