Merge branch 'np/maint-1.6.3-deepen'
* np/maint-1.6.3-deepen: pack-objects: free preferred base memory after usage make shallow repository deepening more network efficient
This commit is contained in:
@ -1008,6 +1008,33 @@ static void add_preferred_base(unsigned char *sha1)
|
||||
it->pcache.tree_size = size;
|
||||
}
|
||||
|
||||
static void cleanup_preferred_base(void)
|
||||
{
|
||||
struct pbase_tree *it;
|
||||
unsigned i;
|
||||
|
||||
it = pbase_tree;
|
||||
pbase_tree = NULL;
|
||||
while (it) {
|
||||
struct pbase_tree *this = it;
|
||||
it = this->next;
|
||||
free(this->pcache.tree_data);
|
||||
free(this);
|
||||
}
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(pbase_tree_cache); i++) {
|
||||
if (!pbase_tree_cache[i])
|
||||
continue;
|
||||
free(pbase_tree_cache[i]->tree_data);
|
||||
free(pbase_tree_cache[i]);
|
||||
pbase_tree_cache[i] = NULL;
|
||||
}
|
||||
|
||||
free(done_pbase_paths);
|
||||
done_pbase_paths = NULL;
|
||||
done_pbase_paths_num = done_pbase_paths_alloc = 0;
|
||||
}
|
||||
|
||||
static void check_object(struct object_entry *entry)
|
||||
{
|
||||
if (entry->in_pack) {
|
||||
@ -2312,6 +2339,7 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix)
|
||||
rp_av[rp_ac] = NULL;
|
||||
get_object_list(rp_ac, rp_av);
|
||||
}
|
||||
cleanup_preferred_base();
|
||||
if (include_tag && nr_result)
|
||||
for_each_ref(add_ref_tag, NULL);
|
||||
stop_progress(&progress_state);
|
||||
|
||||
Reference in New Issue
Block a user