anchor.diff:        git_blob_create_fromfile                  := Bind('git_blob_create_fromfile');
         git_blob_create_frombuffer                := Bind('git_blob_create_frombuffer');
   
  -      git_commit_message_short                  := Bind('git_commit_message_short');
         git_commit_message                        := Bind('git_commit_message');
         git_commit_author                         := Bind('git_commit_author');
         git_commit_committer                      := Bind('git_commit_committer');
  
positive.code:       open:                                              Pgit_config_file_open;
        get:                                               Pgit_config_file_get;
        set_:                                              Pgit_config_file_set;
        foreach:                                           Pgit_config_file_foreach;
        free:                                              Pgit_config_file_free;
     end;
  
     Pgit_config_foreach_callback = ^git_config_foreach_callback;
     git_config_foreach_callback = function (const key: PAnsiChar; data: PByte): Integer; stdcall;
  
  //   typedef enum {
  //      GIT_REPO_PATH,
  
negative.code: 
  
  var
     /// attr.h
     ///   Attribute management
  
  //   GIT_EXTERN(const char *)git_attr__true;
     git_attr__true:                     function (): PAnsiChar; stdcall;
  //   GIT_EXTERN(const char *)git_attr__false;
     git_attr__false:                    function (): PAnsiChar; stdcall;
  
  //   GIT_EXTERN(int) git_attr_get(git_repository *repo, const char *path, const char *name, const char **value);
     git_attr_get:                       function (repo: Pgit_repository; path, name: PAnsiChar; var value: PAnsiChar): Integer; stdcall;
  //   GIT_EXTERN(int) git_attr_get_many(git_repository *repo, const char *path, size_t num_attr, const char **names, const char **values);
     git_attr_get_many:                  function (repo: Pgit_repository; path: PAnsiChar; num_attr: size_t; names: PPAnsiChar; var values: PAnsiChar): Integer; stdcall;
  //   GIT_EXTERN(int) git_attr_foreach(git_repository *repo, const char *path, int (*callback)(const char *name, const char *value, void *payload), void *payload);
     git_attr_foreach:                   function (repo: Pgit_repository; path: PAnsiChar; callback: Pgit_attr_foreach_callback; payload: PByte): Integer; stdcall;
  //   GIT_EXTERN(void) git_attr_cache_flush(git_repository *repo);
     git_attr_cache_flush:               procedure (repo: Pgit_repository); stdcall;
  //   GIT_EXTERN(int) git_attr_add_macro(git_repository *repo, const char *name, const char *values);
     git_attr_add_macro:                 function (repo: Pgit_repository; name, values: PAnsiChar): Integer; stdcall;
  
     /// blob.h
     ///
  
     // GIT_EXTERN(const void *) git_blob_rawcontent(git_blob *blob);
     git_blob_rawcontent:                function (blob: Pgit_blob): PByte; stdcall;
     // GIT_EXTERN(size_t) git_blob_rawsize(git_blob *blob);
     git_blob_rawsize:                   function (blob: Pgit_blob): size_t; stdcall;
     // GIT_EXTERN(int) git_blob_create_fromfile(git_oid *oid, git_repository *repo, const char *path);
     git_blob_create_fromfile:           function (oid: Pgit_oid; repo: Pgit_repository; const path: PAnsiChar): Integer; stdcall;
     // GIT_EXTERN(int) git_blob_create_frombuffer(git_oid *oid, git_repository *repo, const void *buffer, size_t len);
     git_blob_create_frombuffer:         function (oid: Pgit_oid; repo: Pgit_repository; const buffer: PByte; len: size_t): Integer; stdcall;
  
     /// commit.h
     ///
  
     // GIT_EXTERN(const git_oid *) git_commit_id(git_commit *commit);
     git_commit_id:                      function (commit: Pgit_commit): Pgit_oid; stdcall;
  //   GIT_EXTERN(const char *) git_commit_message_encoding(git_commit *commit);
     git_commit_message_encoding:        function (commit: Pgit_commit): PAnsiChar; stdcall;
     // GIT_EXTERN(const char *) git_commit_message(git_commit *commit);
     git_commit_message:                 function (commit: Pgit_commit): PAnsiChar; stdcall;
     // GIT_EXTERN(git_time_t) git_commit_time(git_commit *commit);
     git_commit_time:                    function (commit: Pgit_commit): git_time_t; stdcall;
     // GIT_EXTERN(int) git_commit_time_offset(git_commit *commit);
     git_commit_time_offset:             function (commit: Pgit_commit): Integer; stdcall;
     // GIT_EXTERN(const git_signature *) git_commit_committer(git_commit *commit);
     git_commit_committer:               function (commit: Pgit_commit): Pgit_signature; stdcall;
     // GIT_EXTERN(const git_signature *) git_commit_author(git_commit *commit);
     git_commit_author:                  function (commit: Pgit_commit): Pgit_signature; stdcall;
     // GIT_EXTERN(int) git_commit_tree(git_tree **tree_out, git_commit *commit);
     git_commit_tree:                    function (var tree_out: Pgit_tree; commit: Pgit_commit): Integer; stdcall;
     // GIT_EXTERN(const git_oid *) git_commit_tree_oid(git_commit *commit);
     git_commit_tree_oid:                function (commit: Pgit_commit): Pgit_oid; stdcall;
     // GIT_EXTERN(unsigned int) git_commit_parentcount(git_commit *commit);
     git_commit_parentcount:             function (commit: Pgit_commit): UInt; stdcall;
     // GIT_EXTERN(int) git_commit_parent(git_commit **parent, git_commit *commit, unsigned int n);
     git_commit_parent:                  function (var parent: Pgit_commit; commit: Pgit_commit; n: UInt): Integer; stdcall;
     // GIT_EXTERN(const git_oid *) git_commit_parent_oid(git_commit *commit, unsigned int n);
     git_commit_parent_oid:              function (commit: Pgit_commit; n: UInt): Pgit_oid; stdcall;
     // GIT_EXTERN(int) git_commit_create(git_oid *oid, git_repository *repo, const char *update_ref, const git_signature *author, const git_signature *committer, const char *message_encoding, const char *message, const git_tree *tree, int parent_count, const git_commit *parents[]);
     git_commit_create:                  function (oid: Pgit_oid; repo: Pgit_repository; const update_ref: PAnsiChar; const author, committer: Pgit_signature; const message_encoding, message_: PAnsiChar; const tree: Pgit_tree; parent_count: Integer; const parents: PPgit_commit): Integer; stdcall;
     // GIT_EXTERN(int) git_commit_create_v(git_oid *oid, git_repository *repo, const char *update_ref, const git_signature *author, const git_signature *committer, const char *message_encoding, const char *message, const git_tree *tree, int parent_count, ...);
     git_commit_create_v:                function (oid: Pgit_oid; repo: Pgit_repository; const update_ref: PAnsiChar; const author, committer: Pgit_signature; const message_encoding, message_: PAnsiChar; const tree: Pgit_tree; parent_count: Integer): Integer varargs; stdcall;
  
     /// common.h
     ///
  
     // GIT_EXTERN(void) git_strarray_free(git_strarray *array);
     git_strarray_free:                  procedure (array_: Pgit_strarray); stdcall;
     // GIT_EXTERN(void) git_libgit2_version(int *major, int *minor, int *rev);
     git_libgit2_version:                procedure (out major, minor, rev: Integer); stdcall;
  
     /// config.h
     ///
  
     // GIT_EXTERN(int) git_config_find_global(char *global_config_path);
     git_config_find_global:             function (global_config_path: PAnsiChar): Integer; stdcall;
     // GIT_EXTERN(int) git_config_find_system(char *system_config_path);
     git_config_find_system:             function (system_config_path: PAnsiChar): Integer; stdcall;
     // GIT_EXTERN(int) git_config_open_global(git_config **out);
     git_config_open_global:             function (var out_: Pgit_config): Integer; stdcall;
     // GIT_EXTERN(int) git_config_file__ondisk(struct git_config_file **out, const char *path);
  