libgit2/src
Vicent Marti 72a3fe42fb I broke your bindings
Hey. Apologies in advance -- I broke your bindings.

This is a major commit that includes a long-overdue redesign of the
whole object-database structure. This is expected to be the last major
external API redesign of the library until the first non-alpha release.

Please get your bindings up to date with these changes. They will be
included in the next minor release. Sorry again!

Major features include:

	- 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

The speed increases are significant in all aspects, specially when
reading an object several times from the ODB (revwalking) and when
writing big objects to the ODB.

Here's a full changelog for the external API:

blob.h
------

	- Remove `git_blob_new`
	- Remove `git_blob_set_rawcontent`
	- Remove `git_blob_set_rawcontent_fromfile`
	- Rename `git_blob_writefile` -> `git_blob_create_fromfile`
	- Change `git_blob_create_fromfile`:
		The `path` argument is now relative to the repository's working dir
	- Add `git_blob_create_frombuffer`

commit.h
--------

	- Remove `git_commit_new`
	- Remove `git_commit_add_parent`
	- Remove `git_commit_set_message`
	- Remove `git_commit_set_committer`
	- Remove `git_commit_set_author`
	- Remove `git_commit_set_tree`

	- Add `git_commit_create`
	- Add `git_commit_create_v`
	- Add `git_commit_create_o`
	- Add `git_commit_create_ov`

tag.h
-----

	- Remove `git_tag_new`
	- Remove `git_tag_set_target`
	- Remove `git_tag_set_name`
	- Remove `git_tag_set_tagger`
	- Remove `git_tag_set_message`

	- Add `git_tag_create`
	- Add `git_tag_create_o`

tree.h
------

	- Change `git_tree_entry_2object`:
		New signature is `(git_object **object_out, git_repository *repo, git_tree_entry *entry)`

	- Remove `git_tree_new`
	- Remove `git_tree_add_entry`
	- Remove `git_tree_remove_entry_byindex`
	- Remove `git_tree_remove_entry_byname`
	- Remove `git_tree_clearentries`
	- Remove `git_tree_entry_set_id`
	- Remove `git_tree_entry_set_name`
	- Remove `git_tree_entry_set_attributes`

object.h
------------

	- Remove `git_object_new
	- Remove `git_object_write`

	- Change `git_object_close`:
		This method is now *mandatory*. Not closing an object causes a
		memory leak.

odb.h
-----

	- Remove type `git_rawobj`
	- Remove `git_rawobj_close`
	- Rename `git_rawobj_hash` -> `git_odb_hash`
	- Change `git_odb_hash`:
		New signature is `(git_oid *id, const void *data, size_t len, git_otype type)`

	- Add type `git_odb_object`
	- Add `git_odb_object_close`

	- Change `git_odb_read`:
		New signature is `(git_odb_object **out, git_odb *db, const git_oid *id)`
	- Change `git_odb_read_header`:
		New signature is `(size_t *len_p, git_otype *type_p, git_odb *db, const git_oid *id)`
	- Remove `git_odb_write`
	- Add `git_odb_open_wstream`
	- Add `git_odb_open_rstream`

odb_backend.h
-------------

	- Change type `git_odb_backend`:
		New internal signatures are as follows

			int (* read)(void **, size_t *, git_otype *, struct git_odb_backend *, const git_oid *)
			int (* read_header)(size_t *, git_otype *, struct git_odb_backend *, const git_oid *)
			int (* writestream)(struct git_odb_stream **, struct git_odb_backend *, size_t, git_otype)
			int (* readstream)( struct git_odb_stream **, struct git_odb_backend *, const git_oid *)

	- Add type `git_odb_stream`
	- Add enum `git_odb_streammode`

Signed-off-by: Vicent Marti <tanoku@gmail.com>
2011-03-20 21:45:11 +02:00
..
backends I broke your bindings 2011-03-20 21:45:11 +02:00
block-sha1 Add a 'git__' prefix to the block-sha1 functions 2010-06-07 19:45:32 +01:00
ppc Add support to enable the library to use OpenSSL SHA1 functions 2010-05-04 21:36:12 +02:00
unix Revised platform types to use 'best supported' size. 2011-01-11 18:31:55 +11:00
win32 Thread safe cache 2011-03-20 21:45:06 +02:00
blob.c I broke your bindings 2011-03-20 21:45:11 +02:00
blob.h I broke your bindings 2011-03-20 21:45:11 +02:00
bswap.h bswap.h: Add ntohs() and htons() functions 2010-10-27 00:59:05 +03:00
cache.c I broke your bindings 2011-03-20 21:45:11 +02:00
cache.h I broke your bindings 2011-03-20 21:45:11 +02:00
cc-compat.h msvc: Disable a level 4 warning and change -W3 to -W4 2010-06-07 19:46:17 +01:00
commit.c I broke your bindings 2011-03-20 21:45:11 +02:00
commit.h I broke your bindings 2011-03-20 21:45:11 +02:00
common.h Thread safe cache 2011-03-20 21:45:06 +02:00
delta-apply.c Change the library include file 2010-12-06 23:03:16 +02:00
delta-apply.h I broke your bindings 2011-03-20 21:45:11 +02:00
dir.h Revert "Properly export all external symbols in Win32" 2010-12-23 00:44:41 +02:00
errors.c I broke your bindings 2011-03-20 21:45:11 +02:00
filebuf.c I broke your bindings 2011-03-20 21:45:11 +02:00
filebuf.h I broke your bindings 2011-03-20 21:45:11 +02:00
fileops.c I broke your bindings 2011-03-20 21:45:11 +02:00
fileops.h I broke your bindings 2011-03-20 21:45:11 +02:00
hash.c Remove the sha1.h header file and inline the content into hash.c 2010-06-07 19:45:12 +01:00
hash.h Change the library include file 2010-12-06 23:03:16 +02:00
hashtable.c Debug assertion when using an initialized hashtable 2011-03-15 19:54:45 +02:00
hashtable.h Add extra methods to the new Hashtable implementation 2011-03-03 20:23:50 +02:00
index.c I broke your bindings 2011-03-20 21:45:11 +02:00
index.h Fix searching in git_vector 2011-03-03 20:23:52 +02:00
map.h Revised platform types to use 'best supported' size. 2011-01-11 18:31:55 +11:00
mingw-compat.h Revised platform types to use 'best supported' size. 2011-01-11 18:31:55 +11:00
msvc-compat.h Revised platform types to use 'best supported' size. 2011-01-11 18:31:55 +11:00
object.c I broke your bindings 2011-03-20 21:45:11 +02:00
odb_loose.c I broke your bindings 2011-03-20 21:45:11 +02:00
odb_pack.c I broke your bindings 2011-03-20 21:45:11 +02:00
odb.c I broke your bindings 2011-03-20 21:45:11 +02:00
odb.h I broke your bindings 2011-03-20 21:45:11 +02:00
oid.c I broke your bindings 2011-03-20 21:45:11 +02:00
pqueue.c Change the Revwalk reset behavior to the old version 2011-03-16 01:53:25 +02:00
pqueue.h Change the Revwalk reset behavior to the old version 2011-03-16 01:53:25 +02:00
refs.c Refs are now always in-sync on disk 2011-03-16 23:28:27 +02:00
refs.h Refs are now always in-sync on disk 2011-03-16 23:28:27 +02:00
repository.c I broke your bindings 2011-03-20 21:45:11 +02:00
repository.h I broke your bindings 2011-03-20 21:45:11 +02:00
revwalk.c I broke your bindings 2011-03-20 21:45:11 +02:00
signature.c I broke your bindings 2011-03-20 21:45:11 +02:00
signature.h I broke your bindings 2011-03-20 21:45:11 +02:00
t03-data.h Add support for SQLite backends 2011-02-05 19:45:57 +02:00
tag.c I broke your bindings 2011-03-20 21:45:11 +02:00
tag.h I broke your bindings 2011-03-20 21:45:11 +02:00
thread-utils.c Wrap malloc and friends and report out of memory as GIT_ENOMEM 2008-12-30 23:28:30 -08:00
thread-utils.h I broke your bindings 2011-03-20 21:45:11 +02:00
tree.c I broke your bindings 2011-03-20 21:45:11 +02:00
tree.h I broke your bindings 2011-03-20 21:45:11 +02:00
util.c Export git_strarray_free instead of inlining 2011-03-16 01:06:15 +02:00
util.h I broke your bindings 2011-03-20 21:45:11 +02:00
vector.c Fix compilation in MSVC 2011-03-03 21:58:37 +02:00
vector.h Fix searching in git_vector 2011-03-03 20:23:52 +02:00