• Show log

    Commit

  • Hash : 242a1cea
    Author : Vicent Martí
    Date : 2012-02-05T16:29:12

    libgit2 v0.16.0 "Dutch Fries"
    
    This lovely and much delayed release of libgit2 ships from the cold city
    of Brussels, which is currently hosting FOSDEM 2012.
    
    There's been plenty of changes since the latest stable release, here's a
    full summary:
    
    - Git Attributes support (see git2/attr.h)
    	There is now support to efficiently parse and retrieve information
    	from `.gitattribute` files in a repository. Note that this
    	information is not yet used e.g. when checking out files.
    
    - .gitignore support
    	Likewise, all the operations that are affected by `.gitignore` files
    	now take into account the global, user and local ignores when
    	skipping the relevant files.
    
    - Cleanup of the object ownership semantics
    	The ownership semantics for all repository subparts (index, odb,
    	config files, etc) has been redesigned. All these objects are now
    	reference counted, and can be hot-swapped in the middle of
    	execution, allowing for instance to add a working directory and an
    	index to a repository that was previously opened as bare, or to
    	change the source of the ODB objects after initialization.
    
    	Consequently, the repository API has been simplified to remove all
    	the `_openX` calls that allowed setting these subparts *before*
    	initialization.
    
    - git_index_read_tree()
    	Git trees can now be read into the index.
    
    - More reflog functionality
    	The reference log has been optimized, and new API calls to rename
    	and delete the logs for a reference have been added.
    
    - Rewrite of the References code with explicit ownership semantics
    	The references code has been mostly rewritten to take into account
    	the cases where another Git application was modifying a repository's
    	references while the Library was running.
    
    	References are now explicitly loaded and free'd by the user, and
    	they may be reloaded in the middle of execution if the user suspects
    	that their values may have changed on disk. Despite the new
    	ownership semantics, the references API stays the same.
    
    - Simplified the Remotes API
    	Some of the more complex Remote calls have been refactored into
    	higher level ones, to facilitate the usual `fetch` workflow of a
    	repository.
    
    - Greatly improved thread-safety
    	The library no longer has race conditions when loading objects from
    	the same ODB and different threads at the same time. There's now
    	full TLS support, even for error codes. When the library is built
    	with `THREADSAFE=1`, the threading support must be globally
    	initialized before it can be used (see `git_threads_init()`)
    
    - Tree walking API
    	A new API can recursively traverse trees and subtrees issuing callbacks for
    	every single entry.
    
    - Tree diff API
    	There is basic support for diff'ing an index against two trees.
    
    - Improved windows support
    	The Library is now codepage aware under Windows32: new API calls
    	allow the user to set the default codepage for the OS in order to
    	avoid strange Unicode errors.