summaryrefslogtreecommitdiff
path: root/include/git2
Commit message (Collapse)AuthorAgeFilesLines
* Thread safe cacheVicent Marti2011-03-171-2/+0
|
* Fix headers for the new Revision WalkerVicent Marti2011-03-161-1/+1
| | | | | | The "oid.h" header is now included instead of "object.h". The old "revwalk.h" header has been removed; it was empty.
* Change the Revwalk reset behavior to the old versionVicent Marti2011-03-161-8/+57
| | | | | The `reset` call now removes the pushed commits so we can reuse the revwalker. The API documentation has been updated with the details.
* Fix signature in `git_repository_gc`Vicent Marti2011-03-161-1/+1
| | | | The method returns an int with the amount of objects free'd
* Export `git_repository_gc` properlyVicent Marti2011-03-161-1/+1
| | | | | One of my brainfarts made me export it as `git_repository_close` instead of GC. Duh.
* Export `git_strarray_free` instead of inliningVicent Marti2011-03-161-8/+1
| | | | That way non-C bindings can use it.
* Add proper threading support to libgit2Vicent Marti2011-03-151-9/+1
| | | | | | | We now depend on libpthread on all Unix platforms (should be installed by default) and use a simple wrapper for Windows threads under Win32. Signed-off-by: Vicent Marti <tanoku@gmail.com>
* Fix the retarded object interdependency systemVicent Marti2011-03-144-15/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's no longer retarded. All object interdependencies are stored as OIDs instead of actual objects. This should be hundreds of times faster, specially on big repositories. Heck, who knows, maye it doesn't even segfault -- wouldn't that be awesome? What has changed on the API? `git_commit_parent`, `git_commit_tree`, `git_tag_target` now return their values through a pointer-to-pointer, and have an error code. `git_commit_set_tree` and `git_tag_set_target` now return an error code and may fail. `git_repository_free__no_gc` has been deprecated because it's stupid. Since there are no longer any interdependencies between objects, we don't need internal reference counting, and GC never fails or double-free's pointers. `git_object_close` now does a very sane thing: marks an object as unused. Closed objects will be eventually free'd from the object cache based on LRU. Please use `git_object_close` from the garbage collector `destroy` method on your bindings. It's 100% safe. `git_repository_gc` is a new method that forces a garbage collector pass through the repo, to free as many LRU objects as possible. This is useful if we are running out of memory.
* Add new method `git_reference_listall`Vicent Marti2011-03-143-0/+40
| | | | | | | Lists all the references in a repository. Listing may be filtered by reference type. This should applease Lord Clem.
* Rewrite the Revision WalkerVicent Marti2011-03-141-3/+5
| | | | | | | | | | | | | | | | | | | | | The new revision walker uses an internal Commit object storage system, custom memory allocator and much improved topological and time sorting algorithms. It's about 20x times faster than the previous implementation when browsing big repositories. The following external API calls have changed: `git_revwalk_next` returns an OID instead of a full commit object. The initial call to `git_revwalk_next` is no longer blocking when iterating through a repo with a time-sorting mode. Iterating with Topological or inverted modes still makes the initial call blocking to preprocess the commit list, but this block should be mostly unnoticeable on most repositories (topological preprocessing times at 0.3s on the git.git repo). `git_revwalk_push` and `git_revwalk_hide` now take an OID instead of a full commit object.
* Add `git_oid_shorten` (unique OID minimzer)Vicent Marti2011-03-141-0/+54
| | | | | | | | | Set of methods to find the minimal-length to uniquely identify every OID in a list. Useful for GUI applications, commit logs and so on. Includes stress test. Signed-off-by: Vicent Marti <tanoku@gmail.com>
* Change interface for Tree Index attr (always unsigned)Vicent Marti2011-03-051-1/+2
| | | | Signed-off-by: Vicent Marti <tanoku@gmail.com>
* Check for valid range of attributes for tree entrySakari Jokinen2011-03-051-1/+1
|
* Change the return type of `git_blob_rawcontent`Vicent Marti2011-03-051-1/+1
| | | | | | Should return `void *` for raw bytes. Signed-off-by: Vicent Marti <tanoku@gmail.com>
* Move the external includes folder from `src` to `include`Vicent Marti2011-03-0318-0/+2602
Signed-off-by: Vicent Marti <tanoku@gmail.com>