Commit Graph

25 Commits

Author SHA1 Message Date
Carlos Martín Nieto
22ab293910 Basic reflog support
For now it simply includes reading in the reflog as a list of
entries. This does mean that the drop/append functions don't need to be
wrapped, as we can use erlang's list handling.

It however also means that we cannot write this back out, as there is
currently no way to create an empty reflog that we can fill with our own
list.
2014-02-13 17:41:11 +01: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
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
b04809ca59 Shuffle some types
Put types in the modules they belong to instead of including them in
each one from the header.
2013-08-31 14:43:25 +02:00
Carlos Martín Nieto
bd83f2fb0e Create a copy of the iterator before turning it into a stream
A functional language shouldn't modify the iterator, but instead keep
advancing. As we can't stop in any particular point, we still just use
a stream.
2013-08-12 14:20:13 +02:00
Carlos Martín Nieto
bb35fce5cc Implement ref iterators 2013-08-09 23:25:55 +02:00
Carlos Martín Nieto
73f31eac2f Make dialyzer happy 2013-07-31 05:00:23 +02:00
Carlos Martín Nieto
bf2a59dbf2 Fix some dialyzer warnings 2013-07-17 10:37:00 +02:00
Carlos Martín Nieto
9d222df593 Initial signature test 2013-06-11 16:34:02 +02:00
Carlos Martín Nieto
a0ded06b7a Create a record for tree entries 2013-06-06 14:08:53 +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
ac3d2d03fe Rename the ref record to geef_reference
Remove the access hacks for elixir and make :geef_reference an elixir
macro as well.
2013-06-05 21:22:25 +02:00
Carlos Martín Nieto
ecb7cdfc23 Parse protocol requests 2013-05-28 09:21:24 +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
7b1dacffc7 Convert geef_odb to a gen_server 2013-05-23 10:58:11 +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
4a2f2e8ab2 Namespace the records
This makes it useful for users of the bindings. The naming is the same
as the module to allow elixir to treat the records in much the same
way as its native module/record hybrid.
2013-05-13 11:05:59 +02:00
Carlos Martín Nieto
3f4d51c0e1 Simple version of index_add 2013-05-03 23:42:49 +02:00
Carlos Martín Nieto
9d7139d604 ref: store the target in the record
There's no need to create a new object every time the user asks for
the target, so store it the same way we do for the type.
2013-05-02 03:53:07 +02:00
Carlos Martín Nieto
58aff1e129 Add revwalk support 2013-04-02 17:13:18 +02:00
Carlos Martín Nieto
5ee6b055e9 tree: don't use a record for tree entry
Return the four elements directly
2013-03-28 13:32:20 +01:00
Carlos Martín Nieto
b5b68cce8b Allow getting a tree entry 2013-03-02 02:56:58 +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
ad567fbf41 erlang headers should be hrl 2013-01-29 01:46:11 +01:00