tag:github.com,2008:https://github.com/jamill/libgit2/releasesRelease notes from libgit22012-05-18T23:46:11Ztag:github.com,2008:Repository/5985560/v0.17.02012-05-18T23:46:11Zv0.17.0: Merge branch 'development'<p>Conflicts:<br>
.travis.yml</p>jamilltag:github.com,2008:Repository/5985560/v0.16.02012-02-05T16:15:21Zv0.16.0<p>libgit2 v0.16.0</p>jamilltag:github.com,2008:Repository/5985560/v0.15.02011-10-05T20:48:36Zlibgit2 v0.15.0 "Das Wunderbar Release"<p>I am aware the codename is not gramatically correct in any language.</p>
<p>Check the COPYING file for the detailed terms on libgit2's license. Check<br>
the AUTHORS file for the full list of guilty parties.</p>
<p>As we slowly stabilize the API, we've dropped 1 function from the library,<br>
and changed the signature of only 5 of them. There's of course a good<br>
chunk of new functionality, and a thousand bug fixes.</p>
<p>In this release of libgit2:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="- Changed `git_blob_rawsize`: Now returns `size_t` instead of int, allowing
files >4GB in 64 bit systems.
- Removed `git_commit_message_short`: Please use `git_commit_message`
to get the full message and decide which is the "short view" according
to your needs (first line, first 80 chars...)
- Added `git_commit_message_encoding`: Returns the encoding field of a commit
message, if it exists.
- Changed `git_commit_create`, `git_commit_create_v`: New argument `encoding`, which
adds a encoding field to the generated commit object.
- Added `git_config_find_system`: Returns the path to the system's global config
file (according to the Core Git standards).
- Changed `git_config_get_XX`, `git_config_set_XX`: the `long` and `int` types have
been replaced by `int64` and `int32` respectively, to make their meaning more
obvious.
- Added `git_indexer`: An interface to index Git Packfiles has been added in the
`git2/indexer.h` header.
- Changed `git_reflog_entry_XX`: Reflog entries are now returned as `git_oid *` objects
instead of hexadecimal OIDs.
- Added `git_remote`: More fetch functionality has been added to the `git2/remote.h`
functionality. Local, Smart HTTP and Git protocols are now supported.
- Added `git_repository_head`: Returns the HEAD of the repository.
- Added `git_repository_config_autoload`: Opens the configuration file of a repository,
including the user's and the system's global config files, if they can be found.
- Changed `git_signature_now`: Now returns an error code; the signature is stored by
reference."><pre class="notranslate"><code>- Changed `git_blob_rawsize`: Now returns `size_t` instead of int, allowing
files >4GB in 64 bit systems.
- Removed `git_commit_message_short`: Please use `git_commit_message`
to get the full message and decide which is the "short view" according
to your needs (first line, first 80 chars...)
- Added `git_commit_message_encoding`: Returns the encoding field of a commit
message, if it exists.
- Changed `git_commit_create`, `git_commit_create_v`: New argument `encoding`, which
adds a encoding field to the generated commit object.
- Added `git_config_find_system`: Returns the path to the system's global config
file (according to the Core Git standards).
- Changed `git_config_get_XX`, `git_config_set_XX`: the `long` and `int` types have
been replaced by `int64` and `int32` respectively, to make their meaning more
obvious.
- Added `git_indexer`: An interface to index Git Packfiles has been added in the
`git2/indexer.h` header.
- Changed `git_reflog_entry_XX`: Reflog entries are now returned as `git_oid *` objects
instead of hexadecimal OIDs.
- Added `git_remote`: More fetch functionality has been added to the `git2/remote.h`
functionality. Local, Smart HTTP and Git protocols are now supported.
- Added `git_repository_head`: Returns the HEAD of the repository.
- Added `git_repository_config_autoload`: Opens the configuration file of a repository,
including the user's and the system's global config files, if they can be found.
- Changed `git_signature_now`: Now returns an error code; the signature is stored by
reference.
</code></pre></div>jamilltag:github.com,2008:Repository/5985560/v0.14.02011-07-14T01:26:08Zlibgit2 v0.14.0, "watermelon wheat"<p>This a very packed minor release. The usual guilty parties have been<br>
working harder than usual during the holidays -- thanks to everyone<br>
involved!</p>
<p>As always, the updated API docs can be found at:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="http://libgit2.github.com/libgit2/"><pre class="notranslate"><code>http://libgit2.github.com/libgit2/
</code></pre></div>
<p>NEW FEATURES:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="- 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`
functions.
- Tons of bugfixes, including the outstanding bug #127 (wrong sort
ordering when querying tree entries)."><pre class="notranslate"><code>- 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`
functions.
- Tons of bugfixes, including the outstanding bug #127 (wrong sort
ordering when querying tree entries).
</code></pre></div>
<p>KNOWN ISSUES:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="- 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."><pre class="notranslate"><code>- 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.
</code></pre></div>
<p>FULL API CHANGELOG:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="- 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"><pre class="notranslate"><code>- 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
</code></pre></div>jamilltag:github.com,2008:Repository/5985560/v0.13.02011-06-19T10:51:09Zlibgit2 v0.13.0 "Watermelon Wheat"<p>On this rascalicious minor release of libgit2:</p>
<ul>
<li>
<p>We've dropped support for Waf. All the build process is now managed<br>
through CMake for all platforms.</p>
</li>
<li>
<p>We've removed the custom backends from the repository. You can now<br>
find a collection of Custom backends on their own repo, under the<br>
libgit2 org. Including MySQL and Memcache backends, courtesy of the<br>
beardful Brian Lopez.</p>
</li>
<li>
<p>We are rocking a new documentation system, Docurium, courtesy of the<br>
insightful Scott Chacon. Check out the details for each single method<br>
in our external API and the way they've evolved through the history<br>
of the library:</p>
<p><a href="http://libgit2.github.com/libgit2/">http://libgit2.github.com/libgit2/</a></p>
</li>
</ul>
<p>This will certainly come in handy if you are developing bindings for<br>
the library.</p>
<ul>
<li>
<p>You can now check the linked version of the library from your<br>
application or bindings, using <code>git_libgit2_version</code>.</p>
</li>
<li>
<p>We have a gazillion new features, courtesy of our invaluable<br>
collaborators, including:</p>
<ul>
<li>Support for Config files!</li>
<li>Support for prefix-only reads on the ODB</li>
<li>Repository discovery</li>
<li>Support for the Unmerged Entries index extension</li>
<li>Better Windows support</li>
<li>30.000 bug fixes (actual number may be lower)</li>
</ul>
</li>
</ul>
<p>Thanks as always to everyone who makes this project possible.</p>
<p>Here's the full list of all external API changes:</p>
<ul>
<li>git_index_open_bare</li>
<li>git_index_open_inrepo</li>
<li>git_odb_backend_sqlite</li>
<li>git_oid_mkraw</li>
<li>git_oid_mkstr</li>
<li>git_reference_listcb</li>
<li>git_repository_workdir</li>
</ul>
<p>= git_index_get<br>
= git_repository_path<br>
= git_tree_entry_byindex</p>
<ul>
<li>git_blob_lookup_prefix</li>
<li>git_commit_lookup_prefix</li>
<li>git_config_add_file</li>
<li>git_config_add_file_ondisk</li>
<li>git_config_file__ondisk</li>
<li>git_config_find_global</li>
<li>git_config_foreach</li>
<li>git_config_free</li>
<li>git_config_get_bool</li>
<li>git_config_get_int</li>
<li>git_config_get_long</li>
<li>git_config_get_string</li>
<li>git_config_new</li>
<li>git_config_open_global</li>
<li>git_config_open_ondisk</li>
<li>git_config_set_bool</li>
<li>git_config_set_int</li>
<li>git_config_set_long</li>
<li>git_config_set_string</li>
<li>git_index_entry_stage</li>
<li>git_index_entrycount_unmerged</li>
<li>git_index_get_unmerged_byindex</li>
<li>git_index_get_unmerged_bypath</li>
<li>git_index_open</li>
<li>git_object_lookup_prefix</li>
<li>git_odb_read_prefix</li>
<li>git_oid_fromraw</li>
<li>git_oid_fromstr</li>
<li>git_oid_ncmp</li>
<li>git_reference_foreach</li>
<li>git_repository_config</li>
<li>git_repository_discover</li>
<li>git_repository_is_bare</li>
<li>git_tag_lookup_prefix</li>
<li>git_tree_entry_type</li>
<li>git_tree_lookup_prefix</li>
</ul>jamilltag:github.com,2008:Repository/5985560/v0.12.02011-05-10T21:47:51Zlibgit2 v0.12.0 "absolutely no reason"<p>Hey, welcome to yet another minor libgit2 release. Sorry for the delay from<br>
the last one. As you'll see the changelog is quite extensive -- hopefully from<br>
now on we'll stick to more frequent minor releases.</p>
<p>Together with the usual bugfixes, here's a list of the new key features:</p>
<ul>
<li>
<p>Distfiles</p>
<p>This version comes with proper distfiles as requested in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="758981" data-permission-text="Title is private" data-url="https://github.com/libgit2/libgit2/issues/131" data-hovercard-type="issue" data-hovercard-url="/libgit2/libgit2/issues/131/hovercard" href="https://github.com/libgit2/libgit2/issues/131">libgit2#131</a>. These are<br>
available in the Downloads section of the GitHub project.</p>
</li>
<li>
<p>Error handling</p>
<p>A new error handling API has been implemented that allows the library to<br>
return detailed error messages together with the generic error codes. We<br>
hope this will be a great when wrapping and integrating the library</p>
<p>New external method to get the last detailed error message:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=" + git_lasterror(void)"><pre class="notranslate"><code> + git_lasterror(void)
</code></pre></div>
<p>The old <code>git_strerror</code> still exists, but will be deprecated in the future<br>
as soon as every method in the library returns a valid error message.</p>
<p>The task of writing error messages for every method is quite daunting.<br>
We appreciate pull requests with more error messages. Check the new error<br>
handling documentation in the following commit:</p>
<p><a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/libgit2/libgit2/commit/fa59f18d0ddbbb98d45e33934fb0efc3e2bf1557/hovercard" href="https://github.com/libgit2/libgit2/commit/fa59f18d0ddbbb98d45e33934fb0efc3e2bf1557">libgit2@<tt>fa59f18</tt></a></p>
</li>
<li>
<p>Redis backend</p>
<p>We now have a Redis backend courtesy of Dmitry Kovega. Just like the<br>
SQLite backend, this allows the library to store Git objects in a Redis<br>
key-value store.</p>
<p>The backend requires the <code>hiredis</code> library. Use <code>--with-redis</code> when<br>
building libgit2 to enable building the backend if <code>hiredis</code> is available.</p>
</li>
<li>
<p>Commits</p>
<p>New methods to access tree and parent data as a raw OID value<br>
instead of forcing a repository lookup</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=" + git_commit_tree_oid(git_commit *commit)
+ git_commit_parent_oid(git_commit *commit, unsigned int n)"><pre class="notranslate"><code> + git_commit_tree_oid(git_commit *commit)
+ git_commit_parent_oid(git_commit *commit, unsigned int n)
</code></pre></div>
</li>
<li>
<p>Index</p>
<p>The <code>git_index_add</code> method has been split into 4 different calls<br>
which allow for appending and replacing in-memory entries and on-disk<br>
files to the index.</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=" + git_index_add(git_index *index, const char *path, int stage)
+ git_index_add2(git_index *index, const git_index_entry *source_entry)
+ git_index_append(git_index *index, const char *path, int stage)
+ git_index_append2(git_index *index, const git_index_entry *source_entry)"><pre class="notranslate"><code> + git_index_add(git_index *index, const char *path, int stage)
+ git_index_add2(git_index *index, const git_index_entry *source_entry)
+ git_index_append(git_index *index, const char *path, int stage)
+ git_index_append2(git_index *index, const git_index_entry *source_entry)
</code></pre></div>
<p>Index entries can now also be efficiently removed from the index:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=" + git_index_remove(git_index *index, int position)"><pre class="notranslate"><code> + git_index_remove(git_index *index, int position)
</code></pre></div>
</li>
<li>
<p>References</p>
<p>Methods to force the creation and renaming of references, even if those already<br>
exist on the repository.</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=" + git_reference_create_symbolic_f(git_reference **ref_out, git_repository *repo,
const char *name, const char *target)
+ git_reference_create_oid_f(git_reference **ref_out, git_repository *repo,
const char *name, const git_oid *id)
+ git_reference_rename_f(git_reference *ref, const char *new_name)"><pre class="notranslate"><code> + git_reference_create_symbolic_f(git_reference **ref_out, git_repository *repo,
const char *name, const char *target)
+ git_reference_create_oid_f(git_reference **ref_out, git_repository *repo,
const char *name, const git_oid *id)
+ git_reference_rename_f(git_reference *ref, const char *new_name)
</code></pre></div>
</li>
<li>
<p>Repository</p>
<p>New auxiliary methods with repository information</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=" + git_repository_is_empty(git_repository *repo)
+ git_repository_path(git_repository *repo)
+ git_repository_workdir(git_repository *repo)"><pre class="notranslate"><code> + git_repository_is_empty(git_repository *repo)
+ git_repository_path(git_repository *repo)
+ git_repository_workdir(git_repository *repo)
</code></pre></div>
</li>
<li>
<p>Signatures</p>
<p>New method to create a signature with the current date/time</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=" + git_signature_now(const char *name, const char *email)"><pre class="notranslate"><code> + git_signature_now(const char *name, const char *email)
</code></pre></div>
</li>
<li>
<p>Tags</p>
<p>Several wrappers to automate tag creation.</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=" + git_tag_create_frombuffer(git_oid *oid, git_repository *repo,
const char *buffer)
+ git_tag_create_f(git_oid *oid, git_repository *repo,
const char *tag_name, const git_oid *target,
git_otype target_type, const git_signature *tagger,
const char *message);
+ git_tag_create_fo(git_oid *oid, git_repository *repo,
const char *tag_name, const git_object *target,
const git_signature *tagger, const char *message)"><pre class="notranslate"><code> + git_tag_create_frombuffer(git_oid *oid, git_repository *repo,
const char *buffer)
+ git_tag_create_f(git_oid *oid, git_repository *repo,
const char *tag_name, const git_oid *target,
git_otype target_type, const git_signature *tagger,
const char *message);
+ git_tag_create_fo(git_oid *oid, git_repository *repo,
const char *tag_name, const git_object *target,
const git_signature *tagger, const char *message)
</code></pre></div>
<p>New functionality to delete and list tags in a repository without<br>
having to resort to the <code>references</code> API.</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=" + git_tag_delete(git_repository *repo, const char *tag_name)
+ git_tag_list(git_strarray *tag_names, git_repository *repo)"><pre class="notranslate"><code> + git_tag_delete(git_repository *repo, const char *tag_name)
+ git_tag_list(git_strarray *tag_names, git_repository *repo)
</code></pre></div>
</li>
<li>
<p>Trees</p>
<p>All instances of <code>git_tree_entry</code> are now returned and handled<br>
as constant, to remind the user that these opaque types are not<br>
supposed to be manually free'd.</p>
<p>The <code>git_tree_entry_2object</code> method now takes a <code>git_repository</code><br>
argument which defines in which repository the resolved object<br>
should be looked up. (It is expected to be the same repository<br>
that contains the parent <code>git_tree</code> for the entry).</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=" + git_tree_entry_2object(git_object **object_out, git_repository *repo,
const git_tree_entry *entry)"><pre class="notranslate"><code> + git_tree_entry_2object(git_object **object_out, git_repository *repo,
const git_tree_entry *entry)
</code></pre></div>
<p>New opaque type <code>git_treebuilder</code> with functionality to create and<br>
write trees on memory</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=" + git_treebuilder_create(git_treebuilder **builder_p, const git_tree *source)
+ git_treebuilder_clear(git_treebuilder *bld)
+ git_treebuilder_free(git_treebuilder *bld)
+ git_treebuilder_get(git_treebuilder *bld, const char *filename)
+ git_treebuilder_insert(git_tree_entry **entry_out, git_treebuilder *bld,
const char *filename, const git_oid *id, unsigned int attributes)
+ git_treebuilder_remove(git_treebuilder *bld, const char *filename)
+ git_treebuilder_filter(git_treebuilder *bld,
int (*filter)(const git_tree_entry *, void *), void *payload)
+ git_treebuilder_write(git_oid *oid, git_repository *repo, git_treebuilder *bld)"><pre class="notranslate"><code> + git_treebuilder_create(git_treebuilder **builder_p, const git_tree *source)
+ git_treebuilder_clear(git_treebuilder *bld)
+ git_treebuilder_free(git_treebuilder *bld)
+ git_treebuilder_get(git_treebuilder *bld, const char *filename)
+ git_treebuilder_insert(git_tree_entry **entry_out, git_treebuilder *bld,
const char *filename, const git_oid *id, unsigned int attributes)
+ git_treebuilder_remove(git_treebuilder *bld, const char *filename)
+ git_treebuilder_filter(git_treebuilder *bld,
int (*filter)(const git_tree_entry *, void *), void *payload)
+ git_treebuilder_write(git_oid *oid, git_repository *repo, git_treebuilder *bld)
</code></pre></div>
<p>New method to write an index file as a tree to the ODB.</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=" + git_tree_create_fromindex(git_oid *oid, git_index *index)"><pre class="notranslate"><code> + git_tree_create_fromindex(git_oid *oid, git_index *index)
</code></pre></div>
</li>
</ul>
<p>Thanks to the usual guility parties that make this this happen, to<br>
all the new contributors who are starting to submit pull requests, and<br>
to the bindings developers who have to keep up with our shit.</p>
<p>Feedback and questions welcome on <a href="mailto:libgit2@librelist.org">libgit2@librelist.org</a></p>
<p>Signed-off-by: Vicent Marti <a href="mailto:tanoku@gmail.com">tanoku@gmail.com</a></p>jamilltag:github.com,2008:Repository/5985560/v0.11.02011-03-28T19:35:27Zv0.11.0: libgit2 version 0.11.0, "McSwifty"<p>Apologies for the massive changes in the external API (that's my fault),<br>
and for the terrible codename for this release (that's <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/tclem/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/tclem">@tclem</a>'s fault).</p>
<p>The detailed overview for the major API changes can be found in the<br>
commit at <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/jamill/libgit2/commit/72a3fe42fb7208712bbe8f0981f4c6274c05e9c3/hovercard" href="https://github.com/jamill/libgit2/commit/72a3fe42fb7208712bbe8f0981f4c6274c05e9c3"><tt>72a3fe4</tt></a>.</p>
<p>Major new features in this release:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="- Real caching and refcounting on parsed objects
- Real caching and refcounting on objects read from the ODB
- Streaming writes & reads from the ODB
- Single-method writes for all object types
- The external API is now partially thread-safe
- Improved reference handling
- New method to list references
- ZLib is now built-in
- Improvements to the Revision Walker
- Tons of bug fixes"><pre class="notranslate"><code>- Real caching and refcounting on parsed objects
- Real caching and refcounting on objects read from the ODB
- Streaming writes & reads from the ODB
- Single-method writes for all object types
- The external API is now partially thread-safe
- Improved reference handling
- New method to list references
- ZLib is now built-in
- Improvements to the Revision Walker
- Tons of bug fixes
</code></pre></div>
<p>Thanks to all the contributors who make this possible.</p>
<p>Signed-off-by: Vicent Marti <a href="mailto:tanoku@gmail.com">tanoku@gmail.com</a></p>jamilltag:github.com,2008:Repository/5985560/v0.10.02011-03-14T22:02:29Zv0.10.0: libgit2 version 0.10.0, "very disco"<p>A version <em>so</em> awesome that needs 2 version bumps AND a codename.</p>
<p>Major features:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="- New internal garbage collection (harder)
- Pack backend rewritten from scratch (better)
- Revision walker rewritten from scratch (faster)
- New object interdependency system (stronger)
- Unique OID shortener
- Reference listing"><pre class="notranslate"><code>- New internal garbage collection (harder)
- Pack backend rewritten from scratch (better)
- Revision walker rewritten from scratch (faster)
- New object interdependency system (stronger)
- Unique OID shortener
- Reference listing
</code></pre></div>
<p>In honor of one heck of a music album, released ten years ago,<br>
yesterday.</p>jamilltag:github.com,2008:Repository/5985560/v0.8.02011-03-03T18:23:53Zv0.8.0: Bump the version number to 0.8.0<p>Yes, these are some seriously massive changes to the external API. We<br>
are breaking stuff.</p>
<p>Signed-off-by: Vicent Marti <a href="mailto:tanoku@gmail.com">tanoku@gmail.com</a></p>jamilltag:github.com,2008:Repository/5985560/v0.3.02011-02-07T08:35:58Zv0.3.0: Add proper version management<p>We now have proper sonames in Mac OS X and Linux, proper versioning on<br>
the pkg-config file and proper DLL naming in Windows.</p>
<p>The version of the library is defined exclusively in 'src/git2.h'; the build scripts<br>
read it from there automatically.</p>
<p>Signed-off-by: Vicent Marti <a href="mailto:tanoku@gmail.com">tanoku@gmail.com</a></p>jamill