{"thread":{"id":"29554","subject":"[ANNOUNCE] libgit2 v0.16.0","startedAt":"2012-02-05T16:28:03Z","lastAt":"2012-02-05T16:28:03Z","messageCount":1,"participants":["Vicent Marti"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"183903","messageId":"CAFFjANTU4JfZuFJBm_9-F3bb4Q+10SQ_Tny81E=wwosXXyzdtg@mail.gmail.com","threadId":"29554","inReplyTo":null,"subject":"[ANNOUNCE] libgit2 v0.16.0","fromName":"Vicent Marti","fromEmail":"vicent@github.com","sentAt":"2012-02-05T16:28:03Z","receivedAt":"2012-02-05T16:28:03Z","isPatch":false,"sender":{"key":"vicent@github.com","avatar":"https://gravatar.com/avatar/9d57a2b1e3137bf84342ac1dfdf1cde409b86e8fda5397d05f40f17fa5b84a63?d=mp&s=160"},"body":"Hello everyone,\n\nanother minor libgit2 release is here, albeit slightly delayed. This\none ships from Brussels, damn it's cold.\n\nThe release has been tagged at:\n\n https://github.com/libgit2/libgit2/tree/v0.16.0\n\nA dist package can be found at:\n\n https://github.com/downloads/libgit2/libgit2/libgit2-0.16.0.tar.gz\n\nUpdated documentation can be found at:\n\n http://libgit2.github.com/libgit2/\n\nThe full change log follows after the message.\n\nCheers,\nVicent\n\n===================================\n\nlibgit2 v0.16.0 \"Dutch Fries\"\n\nThis lovely and much delayed release of libgit2 ships from the cold city\nof Brussels, which is currently hosting FOSDEM 2012.\n\nThere's been plenty of changes since the latest stable release, here's a\nfull summary:\n\n- Git Attributes support (see git2/attr.h)\n\tThere is now support to efficiently parse and retrieve information\n\tfrom `.gitattribute` files in a repository. Note that this\n\tinformation is not yet used e.g. when checking out files.\n\n- .gitignore support\n\tLikewise, all the operations that are affected by `.gitignore` files\n\tnow take into account the global, user and local ignores when\n\tskipping the relevant files.\n\n- Cleanup of the object ownership semantics\n\tThe ownership semantics for all repository subparts (index, odb,\n\tconfig files, etc) has been redesigned. All these objects are now\n\treference counted, and can be hot-swapped in the middle of\n\texecution, allowing for instance to add a working directory and an\n\tindex to a repository that was previously opened as bare, or to\n\tchange the source of the ODB objects after initialization.\n\n\tConsequently, the repository API has been simplified to remove all\n\tthe `_openX` calls that allowed setting these subparts *before*\n\tinitialization.\n\n- git_index_read_tree()\n\tGit trees can now be read into the index.\n\n- More reflog functionality\n\tThe reference log has been optimized, and new API calls to rename\n\tand delete the logs for a reference have been added.\n\n- Rewrite of the References code with explicit ownership semantics\n\tThe references code has been mostly rewritten to take into account\n\tthe cases where another Git application was modifying a repository's\n\treferences while the Library was running.\n\n\tReferences are now explicitly loaded and free'd by the user, and\n\tthey may be reloaded in the middle of execution if the user suspects\n\tthat their values may have changed on disk. Despite the new\n\townership semantics, the references API stays the same.\n\n- Simplified the Remotes API\n\tSome of the more complex Remote calls have been refactored into\n\thigher level ones, to facilitate the usual `fetch` workflow of a\n\trepository.\n\n- Greatly improved thread-safety\n\tThe library no longer has race conditions when loading objects from\n\tthe same ODB and different threads at the same time. There's now\n\tfull TLS support, even for error codes. When the library is built\n\twith `THREADSAFE=1`, the threading support must be globally\n\tinitialized before it can be used (see `git_threads_init()`)\n\n- Tree walking API\n\tA new API can recursively traverse trees and subtrees issuing callbacks for\n\tevery single entry.\n\n- Tree diff API\n\tThere is basic support for diff'ing an index against two trees.\n\n- Improved windows support\n\tThe Library is now codepage aware under Windows32: new API calls\n\tallow the user to set the default codepage for the OS in order to\n\tavoid strange Unicode errors.\n"}]}