- 25 Apr, 2012 9 commits
-
-
This renamed `git_khash_str` to `git_strmap`, `git_hash_oid` to `git_oidmap`, and deletes `git_hashtable` from the tree, plus adds unit tests for `git_strmap`.
Russell Belfer committed -
This updates khash.h with some extra features (like error checking on allocations, ability to use wrapped malloc, foreach calls, etc), creates two high-level wrappers around khash: `git_khash_str` and `git_khash_oid` for string-to-void-ptr and oid-to-void-ptr tables, then converts all of the old usage of `git_hashtable` over to use these new hashtables. For `git_khash_str`, I've tried to create a set of macros that yield an API not too unlike the old `git_hashtable` API. Since the oid hashtable is only used in one file, I haven't bother to set up all those macros and just use the khash APIs directly for now.
Russell Belfer committed -
Russell Belfer committed
-
Adding a small stash of nodes with key conflicts has been demonstrated to greatly increase the efficiency of a cuckoo hashtable. See: http://research.microsoft.com/pubs/73856/stash-full.9-30.pdf for more details.
Russell Belfer committed -
Russell Belfer committed
-
This removes the custom paged allocator from revwalk and replaces it with a `git_pool`.
Russell Belfer committed -
This converts the git attr related code (including ignores) and the git diff related code (and implicitly the status code) to use `git_pools` for storing strings. This reduces the number of small blocks allocated dramatically.
Russell Belfer committed -
This adds a `git_pool` object that can do simple paged memory allocation with free for the entire pool at once. Using this, you can replace many small allocations with large blocks that can then cheaply be doled out in small pieces. This is best used when you plan to free the small blocks all at once - for example, if they represent the parsed state from a file or data stream that are either all kept or all discarded. There are two real patterns of usage for `git_pools`: either for "string" allocation, where the item size is a single byte and you end up just packing the allocations in together, or for "fixed size" allocation where you are allocating a large object (e.g. a `git_oid`) and you generally just allocation single objects that can be tightly packed. Of course, you can use it for other things, but those two cases are the easiest.
Russell Belfer committed -
This limitation was a misparsing of the documentation.
Carlos Martín Nieto committed
-
- 24 Apr, 2012 2 commits
-
-
Code clean up, including fixing warnings on Windows 64-bit build
Vicent Martí committed -
Fix git_repository_set_odb() refcount issue
Vicent Martí committed
-
- 23 Apr, 2012 2 commits
-
-
Russell Belfer committed
-
git_repository_free() calls git_odb_free() if the owned odb is not null. According to the doc, when setting a new odb through git_repository_set_odb() the caller has to take care of releasing the odb by himself.
nulltoken committed
-
- 21 Apr, 2012 1 commit
-
-
Signed-off-by: schu <schu-github@schulog.org>
schu committed
-
- 20 Apr, 2012 1 commit
-
-
The code used to assume that there had to be data after the newline in a tree cache extension entry. This isn't true for a childless invalidated entry if it's the last one, as there won't be any children nor a hash to take up space. Adapt the off-by-one comparison to also work in this case. Fixes #633.
Carlos Martín Nieto committed
-
- 19 Apr, 2012 2 commits
-
-
Vicent Martí committed
-
Index refcount issue
Vicent Martí committed
-
- 17 Apr, 2012 4 commits
-
-
This fixes all the warnings on win64 except those in deps, which come from the regex code.
Russell Belfer committed -
Adds a new public reference function `git_reference_lookup_oid` that directly resolved a reference name to an OID without returning the intermediate `git_reference` object (hence, no free needed). Internally, this adds a `git_reference_lookup_resolved` function that combines looking up and resolving a reference. This allows us to be more efficient with memory reallocation. The existing `git_reference_lookup` and `git_reference_resolve` are reimplmented on top of the new utility and a few places in the code are changed to use one of the two new functions.
Russell Belfer committed -
This updates to the latest clar which includes the helpers `cl_assert_equal_s` and `cl_assert_equal_i`. Convert the code over to use those and remove the old libgit2-only helpers.
Russell Belfer committed -
This removes the code for the old status implementation.
Russell Belfer committed
-
- 16 Apr, 2012 2 commits
-
-
Support config value quoting
Russell Belfer committed -
Variable values may be quoted to include newlines, literal quotes and other characters. Add support for these and test it.
Carlos Martín Nieto committed
-
- 15 Apr, 2012 1 commit
-
-
ifdef GIT_WIN32 helper unposix_path() to avoid unused-function warning on non-Windows systems. Signed-off-by: schu <schu-github@schulog.org>
schu committed
-
- 14 Apr, 2012 4 commits
-
-
Carlos Martín Nieto committed
-
git_repository_free() calls git_index_free() if the owned index is not null. According to the doc, when setting a new index through git_repository_set_index() the caller has still to take care of releasing the index by itself. In order to cope with this, this fix makes sure the index refcount is incremented when a new repository is being plugged a new index.
nulltoken committed -
Removed unreferenced variables.
nulltoken committed -
Diff with pathspec
Vicent Martí committed
-
- 13 Apr, 2012 10 commits
-
-
This adds preliminary support for pathspecs to diff and status. The implementation is not very optimized (it still looks at every single file and evaluated the the pathspec match against them), but it works.
Russell Belfer committed -
Carlos Martín Nieto committed
-
Carlos Martín Nieto committed
-
Resolve any lingering deltas, write out the index file and rename the packfile.
Carlos Martín Nieto committed -
This will allow us to index a packfile as soon as we receive it from the network as well as storing it with its final name so we don't need to pass temporary file names around.
Carlos Martín Nieto committed -
Carlos Martín Nieto committed
-
Carlos Martín Nieto committed
-
Vicent Martí committed
-
Update git_repository_open
Vicent Martí committed -
The new indexer needs to be able to bypass any kind of buffering, as it's trying to map data that it has just written to disk.
Carlos Martín Nieto committed
-
- 12 Apr, 2012 2 commits
-
-
The cleanup needs to happen anyway, so set the error code and jump there instead of copying the code.
Carlos Martín Nieto committed -
Plug a few leaks
Vicent Martí committed
-