Add geef_reflog:delete()

This commit is contained in:
Carlos Martín Nieto
2014-02-13 18:24:42 +01:00
parent 5520efb72a
commit 73af429633
7 changed files with 47 additions and 5 deletions

View File

@@ -77,6 +77,10 @@ reference_has_log(_Handle, _Name) ->
reflog_read(_Handle, _Name) ->
?NIF_FN.
-spec reflog_delete(term(), iolist()) -> ok | {error, term()}.
reflog_delete(_Handle, _Name) ->
?NIF_FN.
odb_object_exists(_Val, _Val) ->
nif_error(?LINE).

View File

@@ -3,13 +3,12 @@
-module(geef_reflog).
-include("geef_records.hrl").
-include_lib("eunit/include/eunit.hrl").
-type entry() :: #geef_reflog_entry{}.
-export_type([entry/0]).
%% API
-export([read/2]).
-export([read/2, delete/2]).
to_entry({Name, Email, Timestamp, Offset, IdOld, IdNew, Message}) ->
Sig = geef_sig:convert(Name, Email, Timestamp, Offset),
@@ -24,3 +23,6 @@ read(Repo, Name) ->
Other ->
Other
end.
delete(Repo, Name) ->
geef_repo:reflog_delete(Repo, Name).

View File

@@ -14,7 +14,7 @@
lookup_object/2, revwalk/1, stop/1,
reference_dwim/2, handle/1, iterator/2]).
-export([reference_has_log/2]).
-export([reflog_read/2]).
-export([reflog_read/2, reflog_delete/2]).
-include("geef_records.hrl").
-record(state, {handle}).
@@ -100,6 +100,10 @@ reference_has_log(Pid, Name) ->
reflog_read(Pid, Name) ->
gen_server:call(Pid, {reflog_read, Name}).
%% @private
reflog_delete(Pid, Name) ->
gen_server:call(Pid, {reflog_delete, Name}).
stop(Pid) ->
gen_server:call(Pid, stop).
@@ -150,6 +154,10 @@ handle_call({reflog_read, Name}, _From, State = #state{handle=Handle}) ->
Reply = geef_nif:reflog_read(Handle, Name),
{reply, Reply, State};
handle_call({reflog_delete, Name}, _From, State = #state{handle=Handle}) ->
Reply = geef_nif:reflog_delete(Handle, Name),
{reply, Reply, State};
handle_call(stop, _From, State) ->
{stop, normal, ok, State};
handle_call(revwalk, _From, State = #state{handle=Handle}) ->