libgit2 v0.14.0 “watermelon wheat”

Hello everyone,

this minor release of libgit2 comes very feature packed. Exciting.

The release has been tagged at:

A dist package can be found at:

Updated documentation can be found at:

The full change log follows after the message.

Thanks as always,

libgit2 v0.14.0, “watermelon wheat”

This a very packed minor release. The usual guilty parties have been
working harder than usual during the holidays — thanks to everyone

As always, the updated API docs can be found at:


  • New OS abstraction layer. This should make all POSIX calls much
    more reliable under Windows.

  • Much faster writes of simple objects (commits, tags, trees) to the
    ODB via in-memory buffering and direct writes, instead of streaming.

  • Unified & simplified API for object creation. All the create
    methods now take Objects instead of OIDs to ensure that corrupted
    (dangling) objects cannot be created on the repository.

  • Fully Git-compilant reference renaming (finally!), with
    the already existing git_reference_rename.

  • Deletion of config keys with git_config_delete

  • Greatly improved index performance when adding new entries

  • Reflog support with the git_reflog API

  • Remotes support with the git_remote API

  • First parts of the Networking API, including refspecs and
    the transport abstraction layer. (Note that there are no actual
    transports implemented yet)

  • Status support with the git_status_foreach and git_status_file

  • Tons of bugfixes, including the outstanding bug #127 (wrong sort
    ordering when querying tree entries).


  • The reference renaming code leaks memory. This is being worked on
    as part of a reference handling overhaul.

  • The tree-from-index builder has abysmal performance because it
    doesn’t handle the Treecache extension yet. This is also being
    worked on.


  • removed, * modified, + added

  • git_commit_create_o

  • git_commit_create_ov

  • git_reference_create_oid_f

  • git_reference_create_symbolic_f

  • git_reference_rename_f

  • git_tag_create_f

  • git_tag_create_fo

  • git_tag_create_o

    • git_commit_create

    • git_commit_create_v

    • git_config_foreach

    • git_reference_create_oid

    • git_reference_create_symbolic

    • git_reference_rename

    • git_tag_create

    • git_tag_create_frombuffer

      + git_clearerror
      + git_config_delete
      + git_index_uniq
      + git_odb_hashfile
      + git_oid_fromstrn
      + git_reflog_entry_byindex
      + git_reflog_entry_committer
      + git_reflog_entry_msg
      + git_reflog_entry_oidnew
      + git_reflog_entry_oidold
      + git_reflog_entrycount
      + git_reflog_free
      + git_reflog_read
      + git_reflog_write
      + git_refspec_src_match
      + git_refspec_transform
      + git_remote_connect
      + git_remote_fetchspec
      + git_remote_free
      + git_remote_get
      + git_remote_ls
      + git_remote_name
      + git_remote_url
      + git_repository_head_detached
      + git_repository_head_orphan
      + git_status_file
      + git_status_foreach
      + git_tag_create_lightweight
      + git_tag_list_match
      + git_transport_new

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s