mirror of
https://git.proxmox.com/git/libgit2
synced 2026-01-06 18:52:21 +00:00
tree: mark a tree as already sorted
The trees are sorted on-disk, so we don't have to go over them again. This cuts almost a fifth of time spent parsing trees.
This commit is contained in:
parent
5d1f31c6e6
commit
fc43646965
@ -13,6 +13,10 @@ v0.23 + 1
|
||||
* You can now set your own user-agent to be sent for HTTP requests by
|
||||
using the `GIT_OPT_SET_USER_AGENT` with `git_libgit2_opts()`.
|
||||
|
||||
* Tree objects are now assumed to be sorted. If a tree is not
|
||||
correctly formed, it will give bad results. This is the git approach
|
||||
and cuts a significant amount of time when reading the trees.
|
||||
|
||||
### API additions
|
||||
|
||||
* `git_config_lock()` has been added, which allow for
|
||||
|
||||
@ -476,7 +476,8 @@ int git_tree__parse(void *_tree, git_odb_object *odb_obj)
|
||||
buffer += GIT_OID_RAWSZ;
|
||||
}
|
||||
|
||||
git_vector_sort(&tree->entries);
|
||||
/* The tree is sorted by definition. Bad inputs give bad outputs */
|
||||
tree->entries.flags |= GIT_VECTOR_SORTED;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user