git: update to v2.21.0
authorChristian Hesse <mail@eworm.de>
Sun, 24 Feb 2019 20:19:46 +0000 (21:19 +0100)
committerChristian Hesse <mail@eworm.de>
Wed, 5 Jun 2019 13:37:49 +0000 (15:37 +0200)
Update to git version v2.21.0. Required changes follow upstream commits:

6a7895fd8a3bd409f2b71ffc355d5142172cc2a0
  (commit: prepare free_commit_buffer and release_commit_memory for
  any repo)

e092073d643b17c82d72cf692fbfaea9c9796f11
  (tree.c: make read_tree*() take 'struct repository *')

Signed-off-by: Christian Hesse <mail@eworm.de>
Reviewed-by: John Keeping <john@keeping.me.uk>
Makefile
git
ui-atom.c
ui-blame.c
ui-blob.c
ui-log.c
ui-plain.c
ui-stats.c
ui-tree.c

index e690c7f4bc3f9fd3109e0740d25eb2ca57b393f5..40f4fd884f4c90a2b4d75eeb8e11bbf2c1d65fa9 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -14,7 +14,7 @@ htmldir = $(docdir)
 pdfdir = $(docdir)
 mandir = $(prefix)/share/man
 SHA1_HEADER = <openssl/sha.h>
-GIT_VER = 2.20.0
+GIT_VER = 2.21.0
 GIT_URL = https://www.kernel.org/pub/software/scm/git/git-$(GIT_VER).tar.xz
 INSTALL = install
 COPYTREE = cp -r
diff --git a/git b/git
index 5d826e972970a784bd7a7bdf587512510097b8c7..8104ec994ea3849a968b4667d072fedd1e688642 160000 (submodule)
--- a/git
+++ b/git
@@ -1 +1 @@
-Subproject commit 5d826e972970a784bd7a7bdf587512510097b8c7
+Subproject commit 8104ec994ea3849a968b4667d072fedd1e688642
index cd66f82f082b9cc078584438d7864388e268013c..1056f36397521d0fc037219ec9fa6e07d658f3e6 100644 (file)
--- a/ui-atom.c
+++ b/ui-atom.c
@@ -140,7 +140,7 @@ void cgit_print_atom(char *tip, const char *path, int max_count)
        }
        while ((commit = get_revision(&rev)) != NULL) {
                add_entry(commit, host);
-               free_commit_buffer(commit);
+               free_commit_buffer(the_repository->parsed_objects, commit);
                free_commit_list(commit->parents);
                commit->parents = NULL;
        }
index c52cb9b85f53750c655c5253018f2583e0efea80..644c30ad289e79f98b59b49aac1aef18028e9118 100644 (file)
@@ -290,8 +290,8 @@ void cgit_print_blame(void)
        walk_tree_ctx.match_baselen = (path_items.match) ?
                                       basedir_len(path_items.match) : -1;
 
-       read_tree_recursive(commit->maybe_tree, "", 0, 0, &paths, walk_tree,
-               &walk_tree_ctx);
+       read_tree_recursive(the_repository, commit->maybe_tree, "", 0, 0,
+               &paths, walk_tree, &walk_tree_ctx);
        if (!walk_tree_ctx.state)
                cgit_print_error_page(404, "Not found", "Not found");
        else if (walk_tree_ctx.state == 2)
index 4b6b46277acf12d6f837d29530289568c64442de..30e2d4bf5f5484e1a5cd3541e8531f110a1e91f0 100644 (file)
--- a/ui-blob.c
+++ b/ui-blob.c
@@ -56,7 +56,8 @@ int cgit_ref_path_exists(const char *path, const char *ref, int file_only)
                goto done;
        if (oid_object_info(the_repository, &oid, &size) != OBJ_COMMIT)
                goto done;
-       read_tree_recursive(lookup_commit_reference(the_repository, &oid)->maybe_tree, "", 0, 0, &paths, walk_tree, &walk_tree_ctx);
+       read_tree_recursive(the_repository, lookup_commit_reference(the_repository, &oid)->maybe_tree,
+               "", 0, 0, &paths, walk_tree, &walk_tree_ctx);
 
 done:
        free(path_items.match);
@@ -90,7 +91,8 @@ int cgit_print_file(char *path, const char *head, int file_only)
        type = oid_object_info(the_repository, &oid, &size);
        if (type == OBJ_COMMIT) {
                commit = lookup_commit_reference(the_repository, &oid);
-               read_tree_recursive(commit->maybe_tree, "", 0, 0, &paths, walk_tree, &walk_tree_ctx);
+               read_tree_recursive(the_repository, commit->maybe_tree,
+                       "", 0, 0, &paths, walk_tree, &walk_tree_ctx);
                if (!walk_tree_ctx.found_path)
                        return -1;
                type = oid_object_info(the_repository, &oid, &size);
@@ -146,7 +148,8 @@ void cgit_print_blob(const char *hex, char *path, const char *head, int file_onl
 
        if ((!hex) && type == OBJ_COMMIT && path) {
                commit = lookup_commit_reference(the_repository, &oid);
-               read_tree_recursive(commit->maybe_tree, "", 0, 0, &paths, walk_tree, &walk_tree_ctx);
+               read_tree_recursive(the_repository, commit->maybe_tree,
+                       "", 0, 0, &paths, walk_tree, &walk_tree_ctx);
                type = oid_object_info(the_repository, &oid, &size);
        }
 
index 8c654257b16b926aab928246a0b9e6f98cfbcd06..dc5cb1eb6a0b34e7a0cc197cb397fc002248ee1e 100644 (file)
--- a/ui-log.c
+++ b/ui-log.c
@@ -488,7 +488,7 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern
        for (i = 0; i < ofs && (commit = get_revision(&rev)) != NULL; /* nop */) {
                if (show_commit(commit, &rev))
                        i++;
-               free_commit_buffer(commit);
+               free_commit_buffer(the_repository->parsed_objects, commit);
                free_commit_list(commit->parents);
                commit->parents = NULL;
        }
@@ -510,7 +510,7 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern
                        i++;
                        print_commit(commit, &rev);
                }
-               free_commit_buffer(commit);
+               free_commit_buffer(the_repository->parsed_objects, commit);
                free_commit_list(commit->parents);
                commit->parents = NULL;
        }
index 070c34bccec5be20feb66379ab0f5ec777b991de..b73c1cfed15fa0350d2004bf17107814f1165867 100644 (file)
@@ -198,7 +198,8 @@ void cgit_print_plain(void)
        }
        else
                walk_tree_ctx.match_baselen = basedir_len(path_items.match);
-       read_tree_recursive(commit->maybe_tree, "", 0, 0, &paths, walk_tree, &walk_tree_ctx);
+       read_tree_recursive(the_repository, commit->maybe_tree,
+               "", 0, 0, &paths, walk_tree, &walk_tree_ctx);
        if (!walk_tree_ctx.match)
                cgit_print_error_page(404, "Not found", "Not found");
        else if (walk_tree_ctx.match == 2)
index 7acd358d0f1ca7a137ae901481ae36b1d3374cfd..7272a61a2fff0b0c94f693b1680be3f9157fef1f 100644 (file)
@@ -241,7 +241,7 @@ static struct string_list collect_stats(const struct cgit_period *period)
        memset(&authors, 0, sizeof(authors));
        while ((commit = get_revision(&rev)) != NULL) {
                add_commit(&authors, commit, period);
-               free_commit_buffer(commit);
+               free_commit_buffer(the_repository->parsed_objects, commit);
                free_commit_list(commit->parents);
                commit->parents = NULL;
        }
index 314ac5299fc5dca99949d2cb24394c52fb2c91d5..4be89c8e7fcbf7ac68cca848a86a438f6c3e1235 100644 (file)
--- a/ui-tree.c
+++ b/ui-tree.c
@@ -185,8 +185,8 @@ static void write_tree_link(const struct object_id *oid, char *name,
                tree_ctx.name = NULL;
                tree_ctx.count = 0;
 
-               read_tree_recursive(tree, "", 0, 1, &paths, single_tree_cb,
-                                   &tree_ctx);
+               read_tree_recursive(the_repository, tree, "", 0, 1,
+                       &paths, single_tree_cb, &tree_ctx);
 
                if (tree_ctx.count != 1)
                        break;
@@ -294,7 +294,8 @@ static void ls_tree(const struct object_id *oid, const char *path, struct walk_t
        }
 
        ls_head();
-       read_tree_recursive(tree, "", 0, 1, &paths, ls_item, walk_tree_ctx);
+       read_tree_recursive(the_repository, tree, "", 0, 1,
+               &paths, ls_item, walk_tree_ctx);
        ls_tail();
 }
 
@@ -373,7 +374,8 @@ void cgit_print_tree(const char *rev, char *path)
                goto cleanup;
        }
 
-       read_tree_recursive(commit->maybe_tree, "", 0, 0, &paths, walk_tree, &walk_tree_ctx);
+       read_tree_recursive(the_repository, commit->maybe_tree, "", 0, 0,
+               &paths, walk_tree, &walk_tree_ctx);
        if (walk_tree_ctx.state == 1)
                ls_tail();
        else if (walk_tree_ctx.state == 2)