summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Fix the threading implementationthreadsafeVicent Marti2011-03-176-62/+63
|
* Thread safe cacheVicent Marti2011-03-179-14/+318
|
* Fix headers for the new Revision WalkerVicent Marti2011-03-167-18/+3
| | | | | | The "oid.h" header is now included instead of "object.h". The old "revwalk.h" header has been removed; it was empty.
* Refs are now always in-sync on diskVicent Marti2011-03-162-56/+131
|
* Define NO_GZIP in zconf.h instead of at compile timeVicent Marti2011-03-163-6/+1
|
* Change the Revwalk reset behavior to the old versionVicent Marti2011-03-165-113/+157
| | | | | 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-162-8/+10
| | | | That way non-C bindings can use it.
* Properly free commit a commit list in revwalkVicent Marti2011-03-161-4/+8
| | | | | The commit list was not being properly free'd when a walk was stopped halfway through.
* Revert changes in wscript fileVicent Marti2011-03-151-31/+13
|
* Add proper threading support to libgit2Vicent Marti2011-03-158-146/+248
| | | | | | | 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>
* Do not segfault when listing unpacked referencesVicent Marti2011-03-152-1/+21
|
* Debug assertion when using an initialized hashtableVicent Marti2011-03-151-0/+6
|
* Fix compilation warnings in ZLib (MSVC)Vicent Marti2011-03-152-5/+5
| | | | | Yes, we are changing the Zlib code. This is dangerous and uncool. Fortunately, these are just some implicit casts.
* Remove duplicate refs in `git_reference_listall`Vicent Marti2011-03-152-12/+23
|
* Use a more sane zconf.f when building ZlibVicent Marti2011-03-151-391/+19
|
* Add nodegit to the READMEVicent Marti2011-03-151-0/+1
|
* Add ZLib as a built-in dependencyVicent Marti2011-03-1519-22/+8808
| | | | | | | | I don't know if this is good or bad. This lets libgit2 compile cleanly on any platforms without any external dependencies, but adds a little bit of bloat... Let's test this out and see what happens.
* Add test case for issue GH-86Ben Noordhuis2011-03-151-0/+4
|
* git_object_lookup() should also check the type if the object comes from the ↵Ben Noordhuis2011-03-151-0/+3
| | | | cache
* Skip the optional header in packed-refs filesVicent Marti2011-03-151-16/+10
|
* libgit2 version 0.10.0, "very disco"v0.10.0Vicent Marti2011-03-152-4/+4
| | | | | | | | | | | | | | | | A version *so* awesome that needs 2 version bumps AND a codename. Major features: - 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 In honor of one heck of a music album, released ten years ago, yesterday.
* Fix the retarded object interdependency systemVicent Marti2011-03-1415-254/+173
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-145-0/+135
| | | | | | | Lists all the references in a repository. Listing may be filtered by reference type. This should applease Lord Clem.
* Rewrite the Pack backendVicent Marti2011-03-142-858/+1058
| | | | | | | | | | The new pack backend is an adaptation of the original git.git code in `sha1_file.c`. It's slightly faster than the previous version and severely less memory-hungry. The call-stack of a normal pack backend query has been properly documented in the top of the header for future reference. And by properly I mean with ASCII diagrams 'n shit.
* Rewrite the Revision WalkerVicent Marti2011-03-148-404/+636
| | | | | | | | | | | | | | | | | | | | | 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-143-0/+324
| | | | | | | | | 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>
* Update README.md with new bindingsVicent Marti2011-03-071-11/+22
| | | | Signed-off-by: Vicent Marti <tanoku@gmail.com>
* add objective-git to readmeTim Clem2011-03-071-0/+1
|
* Fix creation of deeply-rooted referencesVicent Marti2011-03-054-19/+41
| | | | | | | Use a new `gitfo_creat_force` that will create the full path to a file before creating it. Signed-off-by: Vicent Marti <tanoku@gmail.com>
* Use memmove() in git__dirname and git__basenameVicent Marti2011-03-051-2/+2
| | | | | | | We cannot make sure that the user doesn't use the same buffer as source and destination, so write to it using memmove. Signed-off-by: Vicent Marti <tanoku@gmail.com>
* Use memmove() in git__joinpath for overlapping copiesVicent Marti2011-03-051-1/+1
| | | | Signed-off-by: Vicent Marti <tanoku@gmail.com>
* Change interface for Tree Index attr (always unsigned)Vicent Marti2011-03-052-2/+3
| | | | Signed-off-by: Vicent Marti <tanoku@gmail.com>
* Check for valid range of attributes for tree entrySakari Jokinen2011-03-052-5/+19
|
* Change the return type of `git_blob_rawcontent`Vicent Marti2011-03-052-2/+2
| | | | | | Should return `void *` for raw bytes. Signed-off-by: Vicent Marti <tanoku@gmail.com>
* Fix the opening of empty repositoriesVicent Marti2011-03-051-51/+71
| | | | | | | We were checking for the index file, which is not assured to exist on clean git repositories. Signed-off-by: Vicent Marti <tanoku@gmail.com>
* clean up temp repo for t12-repo testsTim Clem2011-03-042-9/+18
| | | | | add actual must_pass calls back into the repo tests and remove ./ from beginning of temp repo path
* Fix segmentation fault when freeing a repositoryVicent Marti2011-03-057-37/+43
| | | | | | | | Disable garbage collection of cross-references to prevent double-freeing. Internal reference management is now done with a separate method. Signed-off-by: Vicent Marti <tanoku@gmail.com>
* Fix 'possibly uninitialized variable' warningVicent Marti2011-03-041-1/+1
|
* Don't use non-int bit fieldsVicent Marti2011-03-041-1/+1
| | | | | | They are not standard. MSVC complains about them. And that's not good. Signed-off-by: Vicent Marti <tanoku@gmail.com>
* Fix compilation when using CMake in WindowsVicent Marti2011-03-031-0/+1
| | | | Signed-off-by: Vicent Marti <tanoku@gmail.com>
* Fix compilation in MSVCVicent Marti2011-03-031-1/+1
| | | | | | MSVC cannot substract void pointers. Go figure. Signed-off-by: Vicent Marti <tanoku@gmail.com>
* Bump the version number to 0.8.0v0.8.0Vicent Marti2011-03-031-2/+2
| | | | | | | Yes, these are some seriously massive changes to the external API. We are breaking stuff. Signed-off-by: Vicent Marti <tanoku@gmail.com>
* Move the external includes folder from `src` to `include`Vicent Marti2011-03-0321-9/+9
| | | | Signed-off-by: Vicent Marti <tanoku@gmail.com>
* Fix several issues with refcountingVicent Marti2011-03-035-33/+86
| | | | | | | - Added several missing reference increases - Add new destructor to the repository that does not GC the objects Signed-off-by: Vicent Marti <tanoku@gmail.com>
* Do not free the index if it's owned by a repositoryVicent Marti2011-03-031-1/+1
| | | | Signed-off-by: Vicent Marti <tanoku@gmail.com>
* Implement reference counting for git_objectsVicent Marti2011-03-0312-54/+128
| | | | | | | | All `git_object` instances looked up from the repository are reference counted. User is expected to use the new `git_object_close` when an object is no longer needed to force freeing it. Signed-off-by: Vicent Marti <tanoku@gmail.com>
* Fix searching in git_vectorVicent Marti2011-03-0310-48/+73
| | | | | | | | | | | | | | | | | | We now store only one sorting callback that does entry comparison. This is used when sorting the entries using a quicksort, and when looking for a specific entry with the new search methods. The following search methods now exist: git_vector_search(vector, entry) git_vector_search2(vector, custom_search_callback, key) git_vector_bsearch(vector, entry) git_vector_bsearch2(vector, custom_search_callback, key) The sorting state of the vector is now stored internally. Signed-off-by: Vicent Marti <tanoku@gmail.com>
* Change the object creation/lookup APIVicent Marti2011-03-0314-236/+233
| | | | | | | | | | | | | | | | | | The methods previously known as git_repository_lookup git_repository_newobject git_repository_lookup_ref are now part of their respective namespaces: git_object_lookup git_object_new git_reference_lookup This makes the API more consistent with the new references API. Signed-off-by: Vicent Marti <tanoku@gmail.com>