diff options
author | Christian Hesse | 2017-07-24 17:22:52 +0200 |
---|---|---|
committer | Lukas Fleischer | 2017-08-10 15:15:54 +0200 |
commit | 3d33b46df24d4dee140d0aafb1eba5fffa314cf0 (patch) | |
tree | 86086c5ca8dfe17322ced822e7c313fd09337824 | |
parent | 7ce19ba550ff0d32359b9fb35eeb6282747524b9 (diff) | |
download | cgit-3d33b46df24d4dee140d0aafb1eba5fffa314cf0.tar.gz cgit-3d33b46df24d4dee140d0aafb1eba5fffa314cf0.tar.bz2 cgit-3d33b46df24d4dee140d0aafb1eba5fffa314cf0.zip |
git: update to v2.13.4
Update to git version v2.13.4: With commit 8aee769f (pathspec: copy and free
owned memory) the definition of struct pathspec_item has changed with the
expectation that pathspecs will be managed dynamically. We work around this
a bit by setting up a static structure, but let's allocate the match string
to avoid needing to cast away const.
Updated a patch from John Keeping <john@keeping.me.uk> for git v2.12.1.
-rw-r--r-- | Makefile | 2 | ||||
m--------- | git | 0 | ||||
-rw-r--r-- | shared.c | 4 | ||||
-rw-r--r-- | ui-blob.c | 9 |
4 files changed, 10 insertions, 5 deletions
@@ -14,7 +14,7 @@ htmldir = $(docdir) | |||
14 | pdfdir = $(docdir) | 14 | pdfdir = $(docdir) |
15 | mandir = $(prefix)/share/man | 15 | mandir = $(prefix)/share/man |
16 | SHA1_HEADER = <openssl/sha.h> | 16 | SHA1_HEADER = <openssl/sha.h> |
17 | GIT_VER = 2.11.0 | 17 | GIT_VER = 2.13.4 |
18 | GIT_URL = https://www.kernel.org/pub/software/scm/git/git-$(GIT_VER).tar.gz | 18 | GIT_URL = https://www.kernel.org/pub/software/scm/git/git-$(GIT_VER).tar.gz |
19 | INSTALL = install | 19 | INSTALL = install |
20 | COPYTREE = cp -r | 20 | COPYTREE = cp -r |
diff --git a/git b/git | |||
Subproject 454cb6bd52a4de614a3633e4f547af03d5c3b64 | Subproject cf8899d285d2648013040ec7196ffd3de060666 | ||
@@ -352,7 +352,7 @@ void cgit_diff_tree(const struct object_id *old_oid, | |||
352 | opt.format_callback = cgit_diff_tree_cb; | 352 | opt.format_callback = cgit_diff_tree_cb; |
353 | opt.format_callback_data = fn; | 353 | opt.format_callback_data = fn; |
354 | if (prefix) { | 354 | if (prefix) { |
355 | item.match = prefix; | 355 | item.match = xstrdup(prefix); |
356 | item.len = strlen(prefix); | 356 | item.len = strlen(prefix); |
357 | opt.pathspec.nr = 1; | 357 | opt.pathspec.nr = 1; |
358 | opt.pathspec.items = &item; | 358 | opt.pathspec.items = &item; |
@@ -365,6 +365,8 @@ void cgit_diff_tree(const struct object_id *old_oid, | |||
365 | diff_root_tree_sha1(new_oid->hash, "", &opt); | 365 | diff_root_tree_sha1(new_oid->hash, "", &opt); |
366 | diffcore_std(&opt); | 366 | diffcore_std(&opt); |
367 | diff_flush(&opt); | 367 | diff_flush(&opt); |
368 | |||
369 | free(item.match); | ||
368 | } | 370 | } |
369 | 371 | ||
370 | void cgit_diff_commit(struct commit *commit, filepair_fn fn, const char *prefix) | 372 | void cgit_diff_commit(struct commit *commit, filepair_fn fn, const char *prefix) |
@@ -38,7 +38,7 @@ int cgit_ref_path_exists(const char *path, const char *ref, int file_only) | |||
38 | struct object_id oid; | 38 | struct object_id oid; |
39 | unsigned long size; | 39 | unsigned long size; |
40 | struct pathspec_item path_items = { | 40 | struct pathspec_item path_items = { |
41 | .match = path, | 41 | .match = xstrdup(path), |
42 | .len = strlen(path) | 42 | .len = strlen(path) |
43 | }; | 43 | }; |
44 | struct pathspec paths = { | 44 | struct pathspec paths = { |
@@ -53,10 +53,13 @@ int cgit_ref_path_exists(const char *path, const char *ref, int file_only) | |||
53 | }; | 53 | }; |
54 | 54 | ||
55 | if (get_oid(ref, &oid)) | 55 | if (get_oid(ref, &oid)) |
56 | return 0; | 56 | goto done; |
57 | if (sha1_object_info(oid.hash, &size) != OBJ_COMMIT) | 57 | if (sha1_object_info(oid.hash, &size) != OBJ_COMMIT) |
58 | return 0; | 58 | goto done; |
59 | read_tree_recursive(lookup_commit_reference(oid.hash)->tree, "", 0, 0, &paths, walk_tree, &walk_tree_ctx); | 59 | read_tree_recursive(lookup_commit_reference(oid.hash)->tree, "", 0, 0, &paths, walk_tree, &walk_tree_ctx); |
60 | |||
61 | done: | ||
62 | free(path_items.match); | ||
60 | return walk_tree_ctx.found_path; | 63 | return walk_tree_ctx.found_path; |
61 | } | 64 | } |
62 | 65 | ||