[PATCH 1/1] git: update to v2.29.0
Jason A. Donenfeld
Jason at zx2c4.com
Tue Oct 20 00:40:02 CEST 2020
Thanks for this. It'll be curious to give this a spin with a sha256 repo...
On Mon, Oct 19, 2020 at 8:36 PM Christian Hesse <list at eworm.de> wrote:
>
> From: Christian Hesse <mail at eworm.de>
>
> Update to git version v2.29.0, this requires changes for these
> upstream commits:
>
> * dbbcd44fb47347a3fdbee88ea21805b7f4ac0b98
> strvec: rename files from argv-array to strvec
>
> * 873cd28a8b17ff21908c78c7929a7615f8c94992
> argv-array: rename to strvec
>
> * d70a9eb611a9d242c1d26847d223b8677609305b
> strvec: rename struct fields
>
> * 6a67c759489e1025665adf78326e9e0d0981bab5
> test-lib-functions: restrict test_must_fail usage
>
> Signed-off-by: Christian Hesse <mail at eworm.de>
> ---
> Makefile | 2 +-
> cgit.h | 2 +-
> git | 2 +-
> tests/t0109-gitconfig.sh | 2 +-
> ui-blame.c | 10 +++++-----
> ui-log.c | 30 +++++++++++++++---------------
> ui-snapshot.c | 24 ++++++++++++------------
> 7 files changed, 36 insertions(+), 36 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 84822f0..c947b63 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -14,7 +14,7 @@ htmldir = $(docdir)
> pdfdir = $(docdir)
> mandir = $(prefix)/share/man
> SHA1_HEADER = <openssl/sha.h>
> -GIT_VER = 2.28.0
> +GIT_VER = 2.29.0
> GIT_URL = https://www.kernel.org/pub/software/scm/git/git-$(GIT_VER).tar.xz
> INSTALL = install
> COPYTREE = cp -r
> diff --git a/cgit.h b/cgit.h
> index 7ec46b4..f5db364 100644
> --- a/cgit.h
> +++ b/cgit.h
> @@ -14,7 +14,7 @@
> #include <tag.h>
> #include <diff.h>
> #include <diffcore.h>
> -#include <argv-array.h>
> +#include <strvec.h>
> #include <refs.h>
> #include <revision.h>
> #include <log-tree.h>
> diff --git a/git b/git
> index 47ae905..69986e1 160000
> --- a/git
> +++ b/git
> @@ -1 +1 @@
> -Subproject commit 47ae905ffb98cc4d4fd90083da6bc8dab55d9ecc
> +Subproject commit 69986e19ffcfb9af674ae5180689ab7bbf92ed28
> diff --git a/tests/t0109-gitconfig.sh b/tests/t0109-gitconfig.sh
> index 8cee75c..189ef28 100755
> --- a/tests/t0109-gitconfig.sh
> +++ b/tests/t0109-gitconfig.sh
> @@ -25,7 +25,7 @@ test_no_home_access () {
> -E CGIT_CONFIG="$PWD/cgitrc" \
> -E QUERY_STRING="url=$1" \
> -e access -f -o strace.out cgit &&
> - test_must_fail grep "$non_existent_path" strace.out
> + ! grep "$non_existent_path" strace.out
> }
>
> test_no_home_access_success() {
> diff --git a/ui-blame.c b/ui-blame.c
> index f28eea0..c3662bb 100644
> --- a/ui-blame.c
> +++ b/ui-blame.c
> @@ -10,7 +10,7 @@
> #include "ui-blame.h"
> #include "html.h"
> #include "ui-shared.h"
> -#include "argv-array.h"
> +#include "strvec.h"
> #include "blame.h"
>
>
> @@ -104,7 +104,7 @@ static void print_object(const struct object_id *oid, const char *path,
> enum object_type type;
> char *buf;
> unsigned long size;
> - struct argv_array rev_argv = ARGV_ARRAY_INIT;
> + struct strvec rev_argv = STRVEC_INIT;
> struct rev_info revs;
> struct blame_scoreboard sb;
> struct blame_origin *o;
> @@ -124,11 +124,11 @@ static void print_object(const struct object_id *oid, const char *path,
> return;
> }
>
> - argv_array_push(&rev_argv, "blame");
> - argv_array_push(&rev_argv, rev);
> + strvec_push(&rev_argv, "blame");
> + strvec_push(&rev_argv, rev);
> init_revisions(&revs, NULL);
> revs.diffopt.flags.allow_textconv = 1;
> - setup_revisions(rev_argv.argc, rev_argv.argv, &revs, NULL);
> + setup_revisions(rev_argv.nr, rev_argv.v, &revs, NULL);
> init_scoreboard(&sb);
> sb.revs = &revs;
> sb.repo = the_repository;
> diff --git a/ui-log.c b/ui-log.c
> index 2939c01..fd07409 100644
> --- a/ui-log.c
> +++ b/ui-log.c
> @@ -10,7 +10,7 @@
> #include "ui-log.h"
> #include "html.h"
> #include "ui-shared.h"
> -#include "argv-array.h"
> +#include "strvec.h"
>
> static int files, add_lines, rem_lines, lines_counted;
>
> @@ -366,23 +366,23 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern
> {
> struct rev_info rev;
> struct commit *commit;
> - struct argv_array rev_argv = ARGV_ARRAY_INIT;
> + struct strvec rev_argv = STRVEC_INIT;
> int i, columns = commit_graph ? 4 : 3;
> int must_free_tip = 0;
>
> /* rev_argv.argv[0] will be ignored by setup_revisions */
> - argv_array_push(&rev_argv, "log_rev_setup");
> + strvec_push(&rev_argv, "log_rev_setup");
>
> if (!tip)
> tip = ctx.qry.head;
> tip = disambiguate_ref(tip, &must_free_tip);
> - argv_array_push(&rev_argv, tip);
> + strvec_push(&rev_argv, tip);
>
> if (grep && pattern && *pattern) {
> pattern = xstrdup(pattern);
> if (!strcmp(grep, "grep") || !strcmp(grep, "author") ||
> !strcmp(grep, "committer")) {
> - argv_array_pushf(&rev_argv, "--%s=%s", grep, pattern);
> + strvec_pushf(&rev_argv, "--%s=%s", grep, pattern);
> } else if (!strcmp(grep, "range")) {
> char *arg;
> /* Split the pattern at whitespace and add each token
> @@ -390,14 +390,14 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern
> * rev-list options. Also, replace the previously
> * pushed tip (it's no longer relevant).
> */
> - argv_array_pop(&rev_argv);
> + strvec_pop(&rev_argv);
> while ((arg = next_token(&pattern))) {
> if (*arg == '-') {
> fprintf(stderr, "Bad range expr: %s\n",
> arg);
> break;
> }
> - argv_array_push(&rev_argv, arg);
> + strvec_push(&rev_argv, arg);
> }
> }
> }
> @@ -412,22 +412,22 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern
> }
>
> if (commit_graph && !ctx.qry.follow) {
> - argv_array_push(&rev_argv, "--graph");
> - argv_array_push(&rev_argv, "--color");
> + strvec_push(&rev_argv, "--graph");
> + strvec_push(&rev_argv, "--color");
> graph_set_column_colors(column_colors_html,
> COLUMN_COLORS_HTML_MAX);
> }
>
> if (commit_sort == 1)
> - argv_array_push(&rev_argv, "--date-order");
> + strvec_push(&rev_argv, "--date-order");
> else if (commit_sort == 2)
> - argv_array_push(&rev_argv, "--topo-order");
> + strvec_push(&rev_argv, "--topo-order");
>
> if (path && ctx.qry.follow)
> - argv_array_push(&rev_argv, "--follow");
> - argv_array_push(&rev_argv, "--");
> + strvec_push(&rev_argv, "--follow");
> + strvec_push(&rev_argv, "--");
> if (path)
> - argv_array_push(&rev_argv, path);
> + strvec_push(&rev_argv, path);
>
> init_revisions(&rev, NULL);
> rev.abbrev = DEFAULT_ABBREV;
> @@ -436,7 +436,7 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern
> rev.show_root_diff = 0;
> rev.ignore_missing = 1;
> rev.simplify_history = 1;
> - setup_revisions(rev_argv.argc, rev_argv.argv, &rev, NULL);
> + setup_revisions(rev_argv.nr, rev_argv.v, &rev, NULL);
> load_ref_decorations(NULL, DECORATE_FULL_REFS);
> rev.show_decorations = 1;
> rev.grep_filter.ignore_case = 1;
> diff --git a/ui-snapshot.c b/ui-snapshot.c
> index 556d3ed..18361a6 100644
> --- a/ui-snapshot.c
> +++ b/ui-snapshot.c
> @@ -13,32 +13,32 @@
>
> static int write_archive_type(const char *format, const char *hex, const char *prefix)
> {
> - struct argv_array argv = ARGV_ARRAY_INIT;
> + struct strvec argv = STRVEC_INIT;
> const char **nargv;
> int result;
> - argv_array_push(&argv, "snapshot");
> - argv_array_push(&argv, format);
> + strvec_push(&argv, "snapshot");
> + strvec_push(&argv, format);
> if (prefix) {
> struct strbuf buf = STRBUF_INIT;
> strbuf_addstr(&buf, prefix);
> strbuf_addch(&buf, '/');
> - argv_array_push(&argv, "--prefix");
> - argv_array_push(&argv, buf.buf);
> + strvec_push(&argv, "--prefix");
> + strvec_push(&argv, buf.buf);
> strbuf_release(&buf);
> }
> - argv_array_push(&argv, hex);
> + strvec_push(&argv, hex);
> /*
> * Now we need to copy the pointers to arguments into a new
> * structure because write_archive will rearrange its arguments
> * which may result in duplicated/missing entries causing leaks
> - * or double-frees in argv_array_clear.
> + * or double-frees in strvec_clear.
> */
> - nargv = xmalloc(sizeof(char *) * (argv.argc + 1));
> - /* argv_array guarantees a trailing NULL entry. */
> - memcpy(nargv, argv.argv, sizeof(char *) * (argv.argc + 1));
> + nargv = xmalloc(sizeof(char *) * (argv.nr + 1));
> + /* strvec guarantees a trailing NULL entry. */
> + memcpy(nargv, argv.v, sizeof(char *) * (argv.nr + 1));
>
> - result = write_archive(argv.argc, nargv, NULL, the_repository, NULL, 0);
> - argv_array_clear(&argv);
> + result = write_archive(argv.nr, nargv, NULL, the_repository, NULL, 0);
> + strvec_clear(&argv);
> free(nargv);
> return result;
> }
More information about the CGit
mailing list