- 22 Apr, 2013 20 commits
-
-
This adds create and free callback to the git_objects_table so that more of the creation and destruction of objects can be table driven instead of using switch statements. This also makes the semantics of certain object creation functions consistent so that we can make better use of function pointers. This also fixes a theoretical error case where an object allocation fails and we end up storing NULL into the cache.
Russell Belfer committed -
This adds some basic tests for the oidmap just to make sure that collisions, etc. are dealt with correctly. This also adds some tests for the new caching that check if items are inserted (or not inserted) properly into the cache, and that the cache can hold up in a multithreaded environment without error.
Russell Belfer committed -
When I was writing threading tests for the new cache, the main error I kept running into was a pack file having it's content unmapped underneath the running thread. This adds a lock around the routines that map and unmap the pack data so that threads can effectively reload the data when they need it. This also required reworking the error handling paths in a couple places in the code which I tried to make consistent.
Russell Belfer committed -
Add a git_cache_set_max_object_size method that does more checking around setting the max object size. Also add a git_cache_size to read the number of objects currently in the cache. This makes it easier to write tests.
Russell Belfer committed -
This uses the odb object accessors so we can change the internals more easily...
Russell Belfer committed -
Vicent Marti committed
-
Vicent Marti committed
-
Vicent Marti committed
-
Vicent Marti committed
-
Vicent Marti committed
-
Vicent Marti committed
-
Vicent Marti committed
-
Vicent Marti committed
-
Vicent Marti committed
-
Vicent Marti committed
-
Do not allow duplicate ODB backends
Vicent Martí committed -
Revamp the refspec handling
Vicent Martí committed -
Conflicts: src/odb.c
Vicent Marti committed -
Vicent Marti committed
-
Create include/git2/sys and move backend APIs there
Vicent Martí committed
-
- 21 Apr, 2013 12 commits
-
-
Add missing prototype for p_realpath().
Vicent Martí committed -
Jasper Lievisse Adriaanse committed
-
Create a new include/git2/sys/refs.h and move the reference alloc functions there. Also fix some documentation issues and some minor code cleanups.
Russell Belfer committed -
This moves most of the refdb stuff over to the include/git2/sys directory, with some minor shifts in function organization. While I was making the necessary updates, I also removed the trailing whitespace in a few files that I modified just because I was there and it was bugging me.
Russell Belfer committed -
Actually this renames git_commit_create_oid to git_commit_create_from_oids and moves the API declaration to include/git2/sys/commit.h since it is a dangerous API for general use (because it doesn't check that the OID list items actually refer to real objects).
Russell Belfer committed -
John Wiegley committed
-
Russell Belfer committed
-
John Wiegley committed
-
This moves some of the odb_backend stuff that is related to the internals of an odb_backend implementation into include/git2/sys. Some of the stuff related to streaming I left in include/git2 because it seemed like it would be reasonably needed by a normal user who wanted to stream objects into and out of the ODB. Also, I added APIs for traversing the list of backends so that some of the tests would not need to access ODB internals.
Russell Belfer committed -
Moving backend implementor objects into include/git2/sys so the APIs can be isolated from the ones that normal libgit2 users would be likely to use.
Russell Belfer committed -
mailmap: Coalesce some identities
Vicent Martí committed -
nulltoken committed
-
- 20 Apr, 2013 6 commits
-
-
It used to be separate as an attempt to make the querying easier, but it didn't work out that way, so put all the data together. Add git_refspec_string() as well to get the original string, which is now stored alongside the independent parts.
Carlos Martín Nieto committed -
Introduce git_remote_{fetch,push}_refspecs() to get a list of refspecs from the remote and rename the refspec-adding functions to a less silly name. Use this instead of the vector index hacks in the tests.
Carlos Martín Nieto committed -
A remote can have a multitude of refspecs. Up to now our git_remote's have supported a single one for each fetch and push out of simplicity to get something working. Let the remotes and internal code know about multiple remotes and get the tests passing with them. Instead of setting a refspec, the external users can clear all and add refspecs. This should be enough for most uses, though we're still missing a querying function.
Carlos Martín Nieto committed -
Adding a multivar when there are no variables with that name set should set the variable instead of failing.
Carlos Martín Nieto committed -
Carlos Martín Nieto committed
-
alloc doesn't take a refdb
Vicent Martí committed
-
- 19 Apr, 2013 2 commits
-
-
Edward Thomson committed
-
This fixes #1487
Carlos Martín Nieto committed
-