anchor.diff:  
   %%% API functions
   
  +version() ->
  +    ?VERSION.
  +
  +version_string() ->
  +    VList = [proplists:get_value(Key, version()) || Key <- [major, minor, patch, build]],
  +    Format = case proplists:get_value(build, version()) of
  +		 "" ->
  +		     "~B.~B.~B~s";
  +		 _ ->
  +		     "~B.~B.~B-~s"
  +	     end,
  +    binary_to_list(iolist_to_binary(io_lib:format(Format, VList))).
  +
   list_entities(Kind) when ?VALID_ENTITY_KIND(Kind) ->
       case get_tag(<<"current">>) of
   	find_failed ->
  
positive.code: 
  -behaviour(gen_server).
  
  -export([start_link/0, get_entity/2, get_entity/3, get_tag/1, get_branch/1, put_entity/3, put_entity/4, put_tag/2, put_tag/4, put_branch/2, put_branch/4, list_entities/1, list_entities/2, list_tags/0, list_branches/0]).
  
  -export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]).
  
  -define(SERVER, ?MODULE).
  -define(VALID_ENTITY_KIND(Kind), Kind=:='node' orelse Kind=:='feature' orelse Kind =:= 'subsystem' orelse Kind=:='group' orelse Kind=:='parameter').
  
  start_link() ->
      error_logger:info_msg("entering WALLAROO start_link/0 ~n", []),
  
negative.code: put_branch(Name, C, Anno, Meta) ->
      Commit = canonicalize_hash(C),
      gen_server:call(?SERVER,  {put_branch, Name, Commit, Anno, Meta}).
  
  put_tag(Name, C) ->
      put_tag(Name, C, [], []).
  