git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 17/17] libs: use "struct repository *" argument, not "the_repository"

From
Elijah Newren <newren@gmail.com>
Date
Mar 19, 2023, 06:19 UTC
Message-ID
<CABPp-BEdpTO=DRjLq_p+dgX68M0HUVB--3yQR4Sdp8rnFYeyfA@mail.gmail.com>
In-Reply-To
<patch-17.17-6f86a34bf8b-20230317T152725Z-avarab@gmail.com>

On Fri, Mar 17, 2023 at 8:55 AM Ævar Arnfjörð Bjarmason <avarab@gmail.com> wrote:

Show 14 quoted lines
>
> As can easily be seen from grepping in our sources, we had these uses
> of "the_repository" in various library code in cases where the
> function in question was already getting a "struct repository *"
> argument. Let's use that argument instead.
>
> Out of these changes only the changes to "cache-tree.c",
> "commit-reach.c", "shallow.c" and "upload-pack.c" would have cleanly
> applied before the migration away from the "repo_*()" wrapper macros
> in the preceding commits.
>
> The rest aren't new, as we'd previously implicitly refer to
> "the_repository", but it's now more obvious that we were doing the
> wrong thing all along, and should have used the parameter instead.

YES! I love seeing fixes like this. I noticed some a while back in the merge code, and had some patches somewhere that I think I never got around to submitting, but which have been in the back of my mind bugging me. Nice to see lots of these kinds of cases getting fixed.

Show 28 quoted lines
> The change to change "get_index_format_default(the_repository)" in
> "read-cache.c" to use the "r" variable instead should arguably have
> been part of [1], or in the subsequent cleanup in [2]. Let's do it
> here, as can be seen from the initial code in [3] it's not important
> that we use "the_repository" there, but would prefer to always use the
> current repository.
>
> This change excludes the "the_repository" use in "upload-pack.c"'s
> upload_pack_advertise(), as the in-flight [4] makes that change.
>
> 1. ee1f0c242ef (read-cache: add index.skipHash config option,
>    2023-01-06)
> 2. 6269f8eaad0 (treewide: always have a valid "index_state.repo"
>    member, 2023-01-17)
> 3. 7211b9e7534 (repo-settings: consolidate some config settings,
>    2019-08-13)
> 4. <Y/hbUsGPVNAxTdmS@coredump.intra.peff.net>
>
> Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
> ---
>  add-interactive.c |   2 +-
>  branch.c          |   8 ++--
>  builtin/replace.c |   2 +-
>  cache-tree.c      |   4 +-
>  combine-diff.c    |   2 +-
>  commit-graph.c    |   2 +-
>  commit-reach.c    |   2 +-
>  merge-recursive.c |   2 +-

Doh, doesn't fix up the ones I had. I don't remember the exact issue and can't find the patches right now, but looking around a little I see a write_object_file() which should be a repo_write_object_file(), but it's in a function that doesn't take a repository argument. However, the caller has access to a repository argument, in the form of opt->repo, so we've got some low-hanging fruit that could be fixed up. Doesn't need to be part of your series, but it's nice that your series has done some of the groundwork to make these issues more obvious.

Show 661 quoted lines
>  notes-cache.c     |   2 +-
>  notes-utils.c     |   2 +-
>  object-name.c     |   8 ++--
>  read-cache.c      |   4 +-
>  reset.c           |   2 +-
>  sequencer.c       | 102 ++++++++++++++++++++++------------------------
>  shallow.c         |   2 +-
>  tree.c            |   2 +-
>  wt-status.c       |  10 ++---
>  17 files changed, 76 insertions(+), 82 deletions(-)
>
> diff --git a/add-interactive.c b/add-interactive.c
> index 33f41d65a47..02bf6fc15cb 100644
> --- a/add-interactive.c
> +++ b/add-interactive.c
> @@ -551,7 +551,7 @@ static int get_modified_files(struct repository *r,
>                 opt.def = is_initial ?
>                         empty_tree_oid_hex() : oid_to_hex(&head_oid);
>
> -               repo_init_revisions(the_repository, &rev, NULL);
> +               repo_init_revisions(r, &rev, NULL);
>                 setup_revisions(0, NULL, &rev, &opt);
>
>                 rev.diffopt.output_format = DIFF_FORMAT_CALLBACK;
> diff --git a/branch.c b/branch.c
> index a01e465b114..2b266e6fcb9 100644
> --- a/branch.c
> +++ b/branch.c
> @@ -531,7 +531,7 @@ static void dwim_branch_start(struct repository *r, const char *start_name,
>                 explicit_tracking = 1;
>
>         real_ref = NULL;
> -       if (repo_get_oid_mb(the_repository, start_name, &oid)) {
> +       if (repo_get_oid_mb(r, start_name, &oid)) {
>                 if (explicit_tracking) {
>                         int code = die_message(_(upstream_missing), start_name);
>                         advise_if_enabled(ADVICE_SET_UPSTREAM_FAILURE,
> @@ -541,8 +541,8 @@ static void dwim_branch_start(struct repository *r, const char *start_name,
>                 die(_("not a valid object name: '%s'"), start_name);
>         }
>
> -       switch (repo_dwim_ref(the_repository, start_name, strlen(start_name),
> -                             &oid, &real_ref, 0)) {
> +       switch (repo_dwim_ref(r, start_name, strlen(start_name), &oid,
> +                             &real_ref, 0)) {
>         case 0:
>                 /* Not branching from any existing branch */
>                 if (explicit_tracking)
> @@ -773,7 +773,7 @@ void create_branches_recursively(struct repository *r, const char *name,
>                             name);
>         }
>
> -       create_branch(the_repository, name, start_commitish, force, 0, reflog, quiet,
> +       create_branch(r, name, start_commitish, force, 0, reflog, quiet,
>                       BRANCH_TRACK_NEVER, dry_run);
>         if (dry_run)
>                 return;
> diff --git a/builtin/replace.c b/builtin/replace.c
> index 85f0b79c924..bd67107a7c7 100644
> --- a/builtin/replace.c
> +++ b/builtin/replace.c
> @@ -54,7 +54,7 @@ static int show_reference(struct repository *r, const char *refname,
>                         struct object_id object;
>                         enum object_type obj_type, repl_type;
>
> -                       if (repo_get_oid(the_repository, refname, &object))
> +                       if (repo_get_oid(r, refname, &object))
>                                 return error(_("failed to resolve '%s' as a valid ref"), refname);
>
>                         obj_type = oid_object_info(r, &object, NULL);
> diff --git a/cache-tree.c b/cache-tree.c
> index ab2cc1edf29..b0e490b5aa4 100644
> --- a/cache-tree.c
> +++ b/cache-tree.c
> @@ -814,14 +814,14 @@ void prime_cache_tree(struct repository *r,
>  {
>         struct strbuf tree_path = STRBUF_INIT;
>
> -       trace2_region_enter("cache-tree", "prime_cache_tree", the_repository);
> +       trace2_region_enter("cache-tree", "prime_cache_tree", r);
>         cache_tree_free(&istate->cache_tree);
>         istate->cache_tree = cache_tree();
>
>         prime_cache_tree_rec(r, istate->cache_tree, tree, &tree_path);
>         strbuf_release(&tree_path);
>         istate->cache_changed |= CACHE_TREE_CHANGED;
> -       trace2_region_leave("cache-tree", "prime_cache_tree", the_repository);
> +       trace2_region_leave("cache-tree", "prime_cache_tree", r);
>  }
>
>  /*
> diff --git a/combine-diff.c b/combine-diff.c
> index 20f8a03924f..fa5967a5be6 100644
> --- a/combine-diff.c
> +++ b/combine-diff.c
> @@ -332,7 +332,7 @@ static char *grab_blob(struct repository *r,
>                 *size = fill_textconv(r, textconv, df, &blob);
>                 free_filespec(df);
>         } else {
> -               blob = repo_read_object_file(the_repository, oid, &type, size);
> +               blob = repo_read_object_file(r, oid, &type, size);
>                 if (type != OBJ_BLOB)
>                         die("object '%s' is not a blob!", oid_to_hex(oid));
>         }
> diff --git a/commit-graph.c b/commit-graph.c
> index 268410e913c..035816f4d8c 100644
> --- a/commit-graph.c
> +++ b/commit-graph.c
> @@ -2549,7 +2549,7 @@ int verify_commit_graph(struct repository *r, struct commit_graph *g, int flags)
>
>                 graph_commit = lookup_commit(r, &cur_oid);
>                 odb_commit = (struct commit *)create_object(r, &cur_oid, alloc_commit_node(r));
> -               if (repo_parse_commit_internal(the_repository, odb_commit, 0, 0)) {
> +               if (repo_parse_commit_internal(r, odb_commit, 0, 0)) {
>                         graph_report(_("failed to parse commit %s from object database for commit-graph"),
>                                      oid_to_hex(&cur_oid));
>                         continue;
> diff --git a/commit-reach.c b/commit-reach.c
> index c88faf7e7b2..01eb11b5957 100644
> --- a/commit-reach.c
> +++ b/commit-reach.c
> @@ -448,7 +448,7 @@ int repo_is_descendant_of(struct repository *r,
>         if (!with_commit)
>                 return 1;
>
> -       if (generation_numbers_enabled(the_repository)) {
> +       if (generation_numbers_enabled(r)) {
>                 struct commit_list *from_list = NULL;
>                 int result;
>                 commit_list_insert(commit, &from_list);
> diff --git a/merge-recursive.c b/merge-recursive.c
> index d83ce19bb1f..20aa18e2203 100644
> --- a/merge-recursive.c
> +++ b/merge-recursive.c
> @@ -3798,7 +3798,7 @@ static struct commit *get_ref(struct repository *repo,
>                 return make_virtual_commit(repo, (struct tree*)object, name);
>         if (object->type != OBJ_COMMIT)
>                 return NULL;
> -       if (repo_parse_commit(the_repository, (struct commit *)object))
> +       if (repo_parse_commit(repo, (struct commit *)object))
>                 return NULL;
>         return (struct commit *)object;
>  }
> diff --git a/notes-cache.c b/notes-cache.c
> index e5e9092d367..1a6e214ea79 100644
> --- a/notes-cache.c
> +++ b/notes-cache.c
> @@ -23,7 +23,7 @@ static int notes_cache_match_validity(struct repository *r,
>                 return 0;
>
>         memset(&pretty_ctx, 0, sizeof(pretty_ctx));
> -       repo_format_commit_message(the_repository, commit, "%s", &msg,
> +       repo_format_commit_message(r, commit, "%s", &msg,
>                                    &pretty_ctx);
>         strbuf_trim(&msg);
>
> diff --git a/notes-utils.c b/notes-utils.c
> index 0550cfded86..4be0aaa6de9 100644
> --- a/notes-utils.c
> +++ b/notes-utils.c
> @@ -23,7 +23,7 @@ void create_notes_commit(struct repository *r,
>                 struct object_id parent_oid;
>                 if (!read_ref(t->ref, &parent_oid)) {
>                         struct commit *parent = lookup_commit(r, &parent_oid);
> -                       if (repo_parse_commit(the_repository, parent))
> +                       if (repo_parse_commit(r, parent))
>                                 die("Failed to find/parse commit %s", t->ref);
>                         commit_list_insert(parent, &parents);
>                 }
> diff --git a/object-name.c b/object-name.c
> index df31f192ce3..c7bc311dcef 100644
> --- a/object-name.c
> +++ b/object-name.c
> @@ -1038,7 +1038,7 @@ static enum get_oid_result get_parent(struct repository *r,
>         if (ret)
>                 return ret;
>         commit = lookup_commit_reference(r, &oid);
> -       if (repo_parse_commit(the_repository, commit))
> +       if (repo_parse_commit(r, commit))
>                 return MISSING_OBJECT;
>         if (!idx) {
>                 oidcpy(result, &commit->object.oid);
> @@ -1072,7 +1072,7 @@ static enum get_oid_result get_nth_ancestor(struct repository *r,
>                 return MISSING_OBJECT;
>
>         while (generation--) {
> -               if (repo_parse_commit(the_repository, commit) || !commit->parents)
> +               if (repo_parse_commit(r, commit) || !commit->parents)
>                         return MISSING_OBJECT;
>                 commit = commit->parents->item;
>         }
> @@ -1363,10 +1363,10 @@ static int get_oid_oneline(struct repository *r,
>                 commit = pop_most_recent_commit(&list, ONELINE_SEEN);
>                 if (!parse_object(r, &commit->object.oid))
>                         continue;
> -               buf = repo_get_commit_buffer(the_repository, commit, NULL);
> +               buf = repo_get_commit_buffer(r, commit, NULL);
>                 p = strstr(buf, "\n\n");
>                 matches = negative ^ (p && !regexec(&regex, p + 2, 0, NULL, 0));
> -               repo_unuse_commit_buffer(the_repository, commit, buf);
> +               repo_unuse_commit_buffer(r, commit, buf);
>
>                 if (matches) {
>                         oidcpy(oid, &commit->object.oid);
> diff --git a/read-cache.c b/read-cache.c
> index 1548e886684..892fede6b41 100644
> --- a/read-cache.c
> +++ b/read-cache.c
> @@ -2628,7 +2628,7 @@ int repo_index_has_changes(struct repository *repo,
>
>         if (tree)
>                 cmp = tree->object.oid;
> -       if (tree || !repo_get_oid_tree(the_repository, "HEAD", &cmp)) {
> +       if (tree || !repo_get_oid_tree(repo, "HEAD", &cmp)) {
>                 struct diff_options opt;
>
>                 repo_diff_setup(repo, &opt);
> @@ -2947,7 +2947,7 @@ static int do_write_index(struct index_state *istate, struct tempfile *tempfile,
>         }
>
>         if (!istate->version)
> -               istate->version = get_index_format_default(the_repository);
> +               istate->version = get_index_format_default(r);
>
>         /* demote version 3 to version 2 when the latter suffices */
>         if (istate->version == 3 || istate->version == 2)
> diff --git a/reset.c b/reset.c
> index 3a9c6dfdd0a..65f8138c78b 100644
> --- a/reset.c
> +++ b/reset.c
> @@ -106,7 +106,7 @@ int reset_head(struct repository *r, const struct reset_head_opts *opts)
>                 goto leave_reset_head;
>         }
>
> -       if (!repo_get_oid(the_repository, "HEAD", &head_oid)) {
> +       if (!repo_get_oid(r, "HEAD", &head_oid)) {
>                 head = &head_oid;
>         } else if (!oid || !reset_hard) {
>                 ret = error(_("could not determine HEAD revision"));
> diff --git a/sequencer.c b/sequencer.c
> index fb5a540fa04..f8f4e72112c 100644
> --- a/sequencer.c
> +++ b/sequencer.c
> @@ -694,8 +694,8 @@ static int do_recursive_merge(struct repository *r,
>         o.show_rename_progress = 1;
>
>         head_tree = parse_tree_indirect(head);
> -       next_tree = next ? repo_get_commit_tree(the_repository, next) : empty_tree(r);
> -       base_tree = base ? repo_get_commit_tree(the_repository, base) : empty_tree(r);
> +       next_tree = next ? repo_get_commit_tree(r, next) : empty_tree(r);
> +       base_tree = base ? repo_get_commit_tree(r, base) : empty_tree(r);
>
>         for (i = 0; i < opts->xopts_nr; i++)
>                 parse_merge_opt(&o, opts->xopts[i]);
> @@ -773,7 +773,7 @@ static int is_index_unchanged(struct repository *r)
>          * the commit is invalid, repo_parse_commit() will complain.  So
>          * there is nothing for us to say here.  Just return failure.
>          */
> -       if (repo_parse_commit(the_repository, head_commit))
> +       if (repo_parse_commit(r, head_commit))
>                 return -1;
>
>         if (!(cache_tree_oid = get_cache_tree_oid(istate)))
> @@ -1338,15 +1338,15 @@ void print_commit_summary(struct repository *r,
>         commit = lookup_commit(r, oid);
>         if (!commit)
>                 die(_("couldn't look up newly created commit"));
> -       if (repo_parse_commit(the_repository, commit))
> +       if (repo_parse_commit(r, commit))
>                 die(_("could not parse newly created commit"));
>
>         strbuf_addstr(&format, "format:%h] %s");
>
> -       repo_format_commit_message(the_repository, commit, "%an <%ae>",
> -                                  &author_ident, &pctx);
> -       repo_format_commit_message(the_repository, commit, "%cn <%ce>",
> -                                  &committer_ident, &pctx);
> +       repo_format_commit_message(r, commit, "%an <%ae>", &author_ident,
> +                                  &pctx);
> +       repo_format_commit_message(r, commit, "%cn <%ce>", &committer_ident,
> +                                  &pctx);
>         if (strbuf_cmp(&author_ident, &committer_ident)) {
>                 strbuf_addstr(&format, "\n Author: ");
>                 strbuf_addbuf_percentquote(&format, &author_ident);
> @@ -1354,8 +1354,7 @@ void print_commit_summary(struct repository *r,
>         if (flags & SUMMARY_SHOW_AUTHOR_DATE) {
>                 struct strbuf date = STRBUF_INIT;
>
> -               repo_format_commit_message(the_repository, commit, "%ad",
> -                                          &date, &pctx);
> +               repo_format_commit_message(r, commit, "%ad", &date, &pctx);
>                 strbuf_addstr(&format, "\n Date: ");
>                 strbuf_addbuf_percentquote(&format, &date);
>                 strbuf_release(&date);
> @@ -1385,7 +1384,7 @@ void print_commit_summary(struct repository *r,
>         rev.diffopt.detect_rename = DIFF_DETECT_RENAME;
>         diff_setup_done(&rev.diffopt);
>
> -       refs = get_main_ref_store(the_repository);
> +       refs = get_main_ref_store(r);
>         head = refs_resolve_ref_unsafe(refs, "HEAD", 0, NULL, NULL);
>         if (!head)
>                 die(_("unable to resolve HEAD after creating commit"));
> @@ -1411,7 +1410,7 @@ static int parse_head(struct repository *r, struct commit **head)
>         struct commit *current_head;
>         struct object_id oid;
>
> -       if (repo_get_oid(the_repository, "HEAD", &oid)) {
> +       if (repo_get_oid(r, "HEAD", &oid)) {
>                 current_head = NULL;
>         } else {
>                 current_head = lookup_commit_reference(r, &oid);
> @@ -1421,7 +1420,7 @@ static int parse_head(struct repository *r, struct commit **head)
>                         warning(_("HEAD %s is not a commit!"),
>                                 oid_to_hex(&oid));
>                 }
> -               if (repo_parse_commit(the_repository, current_head))
> +               if (repo_parse_commit(r, current_head))
>                         return error(_("could not parse HEAD commit"));
>         }
>         *head = current_head;
> @@ -1464,9 +1463,8 @@ static int try_to_commit(struct repository *r,
>         if (flags & AMEND_MSG) {
>                 const char *exclude_gpgsig[] = { "gpgsig", "gpgsig-sha256", NULL };
>                 const char *out_enc = get_commit_output_encoding();
> -               const char *message = repo_logmsg_reencode(the_repository,
> -                                                          current_head, NULL,
> -                                                          out_enc);
> +               const char *message = repo_logmsg_reencode(r, current_head,
> +                                                          NULL, out_enc);
>
>                 if (!msg) {
>                         const char *orig_message = NULL;
> @@ -1477,7 +1475,7 @@ static int try_to_commit(struct repository *r,
>                         hook_commit = "HEAD";
>                 }
>                 author = amend_author = get_author(message);
> -               repo_unuse_commit_buffer(the_repository, current_head,
> +               repo_unuse_commit_buffer(r, current_head,
>                                          message);
>                 if (!author) {
>                         res = error(_("unable to parse commit author"));
> @@ -2004,18 +2002,18 @@ static int update_squash_messages(struct repository *r,
>                 struct commit *head_commit;
>                 const char *head_message, *body;
>
> -               if (repo_get_oid(the_repository, "HEAD", &head))
> +               if (repo_get_oid(r, "HEAD", &head))
>                         return error(_("need a HEAD to fixup"));
>                 if (!(head_commit = lookup_commit_reference(r, &head)))
>                         return error(_("could not read HEAD"));
> -               if (!(head_message = repo_logmsg_reencode(the_repository, head_commit, NULL, encoding)))
> +               if (!(head_message = repo_logmsg_reencode(r, head_commit, NULL,
> +                                                         encoding)))
>                         return error(_("could not read HEAD's commit message"));
>
>                 find_commit_subject(head_message, &body);
>                 if (command == TODO_FIXUP && !flag && write_message(body, strlen(body),
>                                                         rebase_path_fixup_msg(), 0) < 0) {
> -                       repo_unuse_commit_buffer(the_repository, head_commit,
> -                                                head_message);
> +                       repo_unuse_commit_buffer(r, head_commit, head_message);
>                         return error(_("cannot write '%s'"), rebase_path_fixup_msg());
>                 }
>                 strbuf_addf(&buf, "%c ", comment_line_char);
> @@ -2030,11 +2028,10 @@ static int update_squash_messages(struct repository *r,
>                 else
>                         strbuf_addstr(&buf, body);
>
> -               repo_unuse_commit_buffer(the_repository, head_commit,
> -                                        head_message);
> +               repo_unuse_commit_buffer(r, head_commit, head_message);
>         }
>
> -       if (!(message = repo_logmsg_reencode(the_repository, commit, NULL, encoding)))
> +       if (!(message = repo_logmsg_reencode(r, commit, NULL, encoding)))
>                 return error(_("could not read commit message of %s"),
>                              oid_to_hex(&commit->object.oid));
>         find_commit_subject(message, &body);
> @@ -2049,7 +2046,7 @@ static int update_squash_messages(struct repository *r,
>                 strbuf_add_commented_lines(&buf, body, strlen(body));
>         } else
>                 return error(_("unknown command: %d"), command);
> -       repo_unuse_commit_buffer(the_repository, commit, message);
> +       repo_unuse_commit_buffer(r, commit, message);
>
>         if (!res)
>                 res = write_message(buf.buf, buf.len, rebase_path_squash_msg(),
> @@ -2162,7 +2159,7 @@ static int do_pick_commit(struct repository *r,
>                 if (write_index_as_tree(&head, r->index, r->index_file, 0, NULL))
>                         return error(_("your index file is unmerged."));
>         } else {
> -               unborn = repo_get_oid(the_repository, "HEAD", &head);
> +               unborn = repo_get_oid(r, "HEAD", &head);
>                 /* Do we want to generate a root commit? */
>                 if (is_pick_or_similar(command) && opts->have_squash_onto &&
>                     oideq(&head, &opts->squash_onto)) {
> @@ -2224,7 +2221,7 @@ static int do_pick_commit(struct repository *r,
>                 msg_file = NULL;
>                 goto fast_forward_edit;
>         }
> -       if (parent && repo_parse_commit(the_repository, parent) < 0)
> +       if (parent && repo_parse_commit(r, parent) < 0)
>                 /* TRANSLATORS: The first %s will be a "todo" command like
>                    "revert" or "pick", the second %s a SHA1. */
>                 return error(_("%s: cannot parse parent commit %s"),
> @@ -2616,7 +2613,7 @@ static int parse_insn_line(struct repository *r, struct todo_item *item,
>         end_of_object_name = (char *) bol + strcspn(bol, " \t\n");
>         saved = *end_of_object_name;
>         *end_of_object_name = '\0';
> -       status = repo_get_oid(the_repository, bol, &commit_oid);
> +       status = repo_get_oid(r, bol, &commit_oid);
>         if (status < 0)
>                 error(_("could not parse '%s'"), bol); /* return later */
>         *end_of_object_name = saved;
> @@ -3531,12 +3528,12 @@ static int make_patch(struct repository *r,
>         strbuf_addf(&buf, "%s/message", get_dir(opts));
>         if (!file_exists(buf.buf)) {
>                 const char *encoding = get_commit_output_encoding();
> -               const char *commit_buffer = repo_logmsg_reencode(the_repository,
> +               const char *commit_buffer = repo_logmsg_reencode(r,
>                                                                  commit, NULL,
>                                                                  encoding);
>                 find_commit_subject(commit_buffer, &subject);
>                 res |= write_message(subject, strlen(subject), buf.buf, 1);
> -               repo_unuse_commit_buffer(the_repository, commit,
> +               repo_unuse_commit_buffer(r, commit,
>                                          commit_buffer);
>         }
>         strbuf_release(&buf);
> @@ -3716,7 +3713,7 @@ static int do_label(struct repository *r, const char *name, int len)
>         if (!transaction) {
>                 error("%s", err.buf);
>                 ret = -1;
> -       } else if (repo_get_oid(the_repository, "HEAD", &head_oid)) {
> +       } else if (repo_get_oid(r, "HEAD", &head_oid)) {
>                 error(_("could not read HEAD"));
>                 ret = -1;
>         } else if (ref_transaction_update(transaction, ref_name.buf, &head_oid,
> @@ -4004,8 +4001,7 @@ static int do_merge(struct repository *r,
>
>         if (commit) {
>                 const char *encoding = get_commit_output_encoding();
> -               const char *message = repo_logmsg_reencode(the_repository,
> -                                                          commit, NULL,
> +               const char *message = repo_logmsg_reencode(r, commit, NULL,
>                                                            encoding);
>                 const char *body;
>                 int len;
> @@ -4019,7 +4015,7 @@ static int do_merge(struct repository *r,
>                 find_commit_subject(message, &body);
>                 len = strlen(body);
>                 ret = write_message(body, len, git_path_merge_msg(r), 0);
> -               repo_unuse_commit_buffer(the_repository, commit, message);
> +               repo_unuse_commit_buffer(r, commit, message);
>                 if (ret) {
>                         error_errno(_("could not write '%s'"),
>                                     git_path_merge_msg(r));
> @@ -4119,8 +4115,7 @@ static int do_merge(struct repository *r,
>         }
>
>         merge_commit = to_merge->item;
> -       bases = repo_get_merge_bases(the_repository, head_commit,
> -                                    merge_commit);
> +       bases = repo_get_merge_bases(r, head_commit, merge_commit);
>         if (bases && oideq(&merge_commit->object.oid,
>                            &bases->item->object.oid)) {
>                 ret = 0;
> @@ -4475,7 +4470,7 @@ void create_autostash(struct repository *r, const char *path)
>                 if (capture_command(&stash, &buf, GIT_MAX_HEXSZ))
>                         die(_("Cannot autostash"));
>                 strbuf_trim_trailing_newline(&buf);
> -               if (repo_get_oid(the_repository, buf.buf, &oid))
> +               if (repo_get_oid(r, buf.buf, &oid))
>                         die(_("Unexpected stash response: '%s'"),
>                             buf.buf);
>                 strbuf_reset(&buf);
> @@ -4600,9 +4595,9 @@ static int stopped_at_head(struct repository *r)
>         struct commit *commit;
>         struct commit_message message;
>
> -       if (repo_get_oid(the_repository, "HEAD", &head) ||
> +       if (repo_get_oid(r, "HEAD", &head) ||
>             !(commit = lookup_commit(r, &head)) ||
> -           repo_parse_commit(the_repository, commit) || get_message(commit, &message))
> +           repo_parse_commit(r, commit) || get_message(commit, &message))
>                 fprintf(stderr, _("Stopped at HEAD\n"));
>         else {
>                 fprintf(stderr, _("Stopped at %s\n"), message.label);
> @@ -4750,7 +4745,7 @@ static int pick_commits(struct repository *r,
>                                  * otherwise we do not.
>                                  */
>                                 if (item->command == TODO_REWORD &&
> -                                   !repo_get_oid(the_repository, "HEAD", &oid) &&
> +                                   !repo_get_oid(r, "HEAD", &oid) &&
>                                     (oideq(&item->commit->object.oid, &oid) ||
>                                      (opts->have_squash_onto &&
>                                       oideq(&opts->squash_onto, &oid))))
> @@ -4839,7 +4834,7 @@ static int pick_commits(struct repository *r,
>                         struct object_id head, orig;
>                         int res;
>
> -                       if (repo_get_oid(the_repository, "HEAD", &head)) {
> +                       if (repo_get_oid(r, "HEAD", &head)) {
>                                 res = error(_("cannot read HEAD"));
>  cleanup_head_ref:
>                                 strbuf_release(&head_ref);
> @@ -4886,8 +4881,8 @@ static int pick_commits(struct repository *r,
>                         log_tree_opt.disable_stdin = 1;
>
>                         if (read_oneliner(&buf, rebase_path_orig_head(), 0) &&
> -                           !repo_get_oid(the_repository, buf.buf, &orig) &&
> -                           !repo_get_oid(the_repository, "HEAD", &head)) {
> +                           !repo_get_oid(r, buf.buf, &orig) &&
> +                           !repo_get_oid(r, "HEAD", &head)) {
>                                 diff_tree_oid(&orig, &head, "",
>                                               &log_tree_opt.diffopt);
>                                 log_tree_diff_flush(&log_tree_opt);
> @@ -4979,7 +4974,7 @@ static int commit_staged_changes(struct repository *r,
>                 struct strbuf rev = STRBUF_INIT;
>                 struct object_id head, to_amend;
>
> -               if (repo_get_oid(the_repository, "HEAD", &head))
> +               if (repo_get_oid(r, "HEAD", &head))
>                         return error(_("cannot amend non-existing commit"));
>                 if (!read_oneliner(&rev, rebase_path_amend(), 0))
>                         return error(_("invalid file: '%s'"), rebase_path_amend());
> @@ -5059,14 +5054,13 @@ static int commit_staged_changes(struct repository *r,
>                                 const char *encoding = get_commit_output_encoding();
>
>                                 if (parse_head(r, &commit) ||
> -                                   !(p = repo_logmsg_reencode(the_repository, commit, NULL, encoding)) ||
> +                                   !(p = repo_logmsg_reencode(r, commit, NULL, encoding)) ||
>                                     write_message(p, strlen(p), path, 0)) {
> -                                       repo_unuse_commit_buffer(the_repository,
> -                                                                commit, p);
> +                                       repo_unuse_commit_buffer(r, commit, p);
>                                         return error(_("could not write file: "
>                                                        "'%s'"), path);
>                                 }
> -                               repo_unuse_commit_buffer(the_repository,
> +                               repo_unuse_commit_buffer(r,
>                                                          commit, p);
>                         }
>                 }
> @@ -5206,7 +5200,7 @@ int sequencer_pick_revisions(struct repository *r,
>                 if (!strlen(name))
>                         continue;
>
> -               if (!repo_get_oid(the_repository, name, &oid)) {
> +               if (!repo_get_oid(r, name, &oid)) {
>                         if (!lookup_commit_reference_gently(r, &oid, 1)) {
>                                 enum object_type type = oid_object_info(r,
>                                                                         &oid,
> @@ -5249,7 +5243,7 @@ int sequencer_pick_revisions(struct repository *r,
>         if (walk_revs_populate_todo(&todo_list, opts) ||
>                         create_seq_dir(r) < 0)
>                 return -1;
> -       if (repo_get_oid(the_repository, "HEAD", &oid) && (opts->action == REPLAY_REVERT))
> +       if (repo_get_oid(r, "HEAD", &oid) && (opts->action == REPLAY_REVERT))
>                 return error(_("can't revert as initial commit"));
>         if (save_head(oid_to_hex(&oid)))
>                 return -1;
> @@ -5944,7 +5938,7 @@ static int skip_unnecessary_picks(struct repository *r,
>                         continue;
>                 if (item->command != TODO_PICK)
>                         break;
> -               if (repo_parse_commit(the_repository, item->commit)) {
> +               if (repo_parse_commit(r, item->commit)) {
>                         return error(_("could not parse commit '%s'"),
>                                 oid_to_hex(&item->commit->object.oid));
>                 }
> @@ -6115,7 +6109,7 @@ int complete_action(struct repository *r, struct replay_opts *opts, unsigned fla
>         struct object_id oid = onto->object.oid;
>         int res;
>
> -       repo_find_unique_abbrev_r(the_repository, shortonto, &oid,
> +       repo_find_unique_abbrev_r(r, shortonto, &oid,
>                                   DEFAULT_ABBREV);
>
>         if (buf->len == 0) {
> @@ -6395,8 +6389,8 @@ int sequencer_determine_whence(struct repository *r, enum commit_whence *whence)
>                 if (file_exists(git_path_seq_dir()))
>                         *whence = FROM_CHERRY_PICK_MULTI;
>                 if (file_exists(rebase_path()) &&
> -                   !repo_get_oid(the_repository, "REBASE_HEAD", &rebase_head) &&
> -                   !repo_get_oid(the_repository, "CHERRY_PICK_HEAD", &cherry_pick_head) &&
> +                   !repo_get_oid(r, "REBASE_HEAD", &rebase_head) &&
> +                   !repo_get_oid(r, "CHERRY_PICK_HEAD", &cherry_pick_head) &&
>                     oideq(&rebase_head, &cherry_pick_head))
>                         *whence = FROM_REBASE_PICK;
>                 else
> diff --git a/shallow.c b/shallow.c
> index 07278467e47..fbafc4b30e9 100644
> --- a/shallow.c
> +++ b/shallow.c
> @@ -30,7 +30,7 @@ int register_shallow(struct repository *r, const struct object_id *oid)
>  {
>         struct commit_graft *graft =
>                 xmalloc(sizeof(struct commit_graft));
> -       struct commit *commit = lookup_commit(the_repository, oid);
> +       struct commit *commit = lookup_commit(r, oid);
>
>         oidcpy(&graft->oid, oid);
>         graft->nr_parent = -1;
> diff --git a/tree.c b/tree.c
> index 1b403c4b5ce..8643b734642 100644
> --- a/tree.c
> +++ b/tree.c
> @@ -58,7 +58,7 @@ int read_tree_at(struct repository *r,
>                                     oid_to_hex(&entry.oid),
>                                     base->buf, entry.path);
>
> -                       if (repo_parse_commit(the_repository, commit))
> +                       if (repo_parse_commit(r, commit))
>                                 die("Invalid commit %s in submodule path %s%s",
>                                     oid_to_hex(&entry.oid),
>                                     base->buf, entry.path);
> diff --git a/wt-status.c b/wt-status.c
> index dcd1d0cee4c..28e35a2165a 100644
> --- a/wt-status.c
> +++ b/wt-status.c
> @@ -1664,7 +1664,7 @@ static void wt_status_get_detached_from(struct repository *r,
>                 return;
>         }
>
> -       if (repo_dwim_ref(the_repository, cb.buf.buf, cb.buf.len, &oid, &ref,
> +       if (repo_dwim_ref(r, cb.buf.buf, cb.buf.len, &oid, &ref,
>                           1) == 1 &&
>             /* oid is a commit? match without further lookup */
>             (oideq(&cb.noid, &oid) ||
> @@ -1677,9 +1677,9 @@ static void wt_status_get_detached_from(struct repository *r,
>                 state->detached_from = xstrdup(from);
>         } else
>                 state->detached_from =
> -                       xstrdup(repo_find_unique_abbrev(the_repository, &cb.noid, DEFAULT_ABBREV));
> +                       xstrdup(repo_find_unique_abbrev(r, &cb.noid, DEFAULT_ABBREV));
>         oidcpy(&state->detached_oid, &cb.noid);
> -       state->detached_at = !repo_get_oid(the_repository, "HEAD", &oid) &&
> +       state->detached_at = !repo_get_oid(r, "HEAD", &oid) &&
>                              oideq(&oid, &state->detached_oid);
>
>         free(ref);
> @@ -1770,13 +1770,13 @@ void wt_status_get_state(struct repository *r,
>         } else if (wt_status_check_rebase(NULL, state)) {
>                 ;               /* all set */
>         } else if (refs_ref_exists(get_main_ref_store(r), "CHERRY_PICK_HEAD") &&
> -                  !repo_get_oid(the_repository, "CHERRY_PICK_HEAD", &oid)) {
> +                  !repo_get_oid(r, "CHERRY_PICK_HEAD", &oid)) {
>                 state->cherry_pick_in_progress = 1;
>                 oidcpy(&state->cherry_pick_head_oid, &oid);
>         }
>         wt_status_check_bisect(NULL, state);
>         if (refs_ref_exists(get_main_ref_store(r), "REVERT_HEAD") &&
> -           !repo_get_oid(the_repository, "REVERT_HEAD", &oid)) {
> +           !repo_get_oid(r, "REVERT_HEAD", &oid)) {
>                 state->revert_in_progress = 1;
>                 oidcpy(&state->revert_head_oid, &oid);
>         }
> --
> 2.40.0.rc1.1034.g5867a1b10c5

I started looking through it closely, but after a bit I realized that the only kind of error you would likely to be make here would be the kind caught by the compiler, so then I started just skimming over it. But I think that's safe for this kind of change. I'm a big fan of these kinds of cleanups and fixups, though.

I'm not sure I can give a Reviewed-by since I just don't know cocci, but it all looked pretty logical. You definitely have my Acked-by on the series, though.

Previous: Ævar Arnfjörð BjarmasonNext: Ævar Arnfjörð Bjarmason
Message 32 of 60 in “cocci: remove "the_index" wrapper macros”
  1. 00/17 cocci: remove "the_index" wrapper macrosÆvar Arnfjörð Bjarmason, Mar 17, 2023
  2. 02/17 cocci: fix incorrect & verbose "the_repository" rulesÆvar Arnfjörð Bjarmason, Mar 17, 2023
  3. Elijah NewrenMar 19, 2023
  4. Glen ChooMar 22, 2023
  5. Ævar Arnfjörð BjarmasonMar 26, 2023
  6. 01/17 cocci: remove dead rule from "the_repository.pending.cocci"Ævar Arnfjörð Bjarmason, Mar 17, 2023
  7. Eric SunshineMar 17, 2023
  8. Elijah NewrenMar 19, 2023
  9. 03/17 cocci: sort "the_repository" rules by headerÆvar Arnfjörð Bjarmason, Mar 17, 2023
  10. Elijah NewrenMar 19, 2023
  11. 04/17 cocci: add missing "the_repository" macros to "pending"Ævar Arnfjörð Bjarmason, Mar 17, 2023
  12. Elijah NewrenMar 19, 2023
  13. 08/17 cocci: apply the "diff.h" part of "the_repository.pending"Ævar Arnfjörð Bjarmason, Mar 17, 2023
  14. 06/17 cocci: apply the "commit-reach.h" part of "the_repository.pending"Ævar Arnfjörð Bjarmason, Mar 17, 2023
  15. 10/17 cocci: apply the "pretty.h" part of "the_repository.pending"Ævar Arnfjörð Bjarmason, Mar 17, 2023
  16. 05/17 cocci: apply the "cache.h" part of "the_repository.pending"Ævar Arnfjörð Bjarmason, Mar 17, 2023
  17. Elijah NewrenMar 19, 2023
  18. Glen ChooMar 22, 2023
  19. 07/17 cocci: apply the "commit.h" part of "the_repository.pending"Ævar Arnfjörð Bjarmason, Mar 17, 2023
  20. 11/17 cocci: apply the "packfile.h" part of "the_repository.pending"Ævar Arnfjörð Bjarmason, Mar 17, 2023
  21. 12/17 cocci: apply the "promisor-remote.h" part of "the_repository.pending"Ævar Arnfjörð Bjarmason, Mar 17, 2023
  22. 14/17 cocci: apply the "rerere.h" part of "the_repository.pending"Ævar Arnfjörð Bjarmason, Mar 17, 2023
  23. 09/17 cocci: apply the "object-store.h" part of "the_repository.pending"Ævar Arnfjörð Bjarmason, Mar 17, 2023
  24. 13/17 cocci: apply the "refs.h" part of "the_repository.pending"Ævar Arnfjörð Bjarmason, Mar 17, 2023
  25. 15/17 cocci: apply the "revision.h" part of "the_repository.pending"Ævar Arnfjörð Bjarmason, Mar 17, 2023
  26. Glen ChooMar 22, 2023
  27. Glen ChooMar 22, 2023
  28. Ævar Arnfjörð BjarmasonMar 26, 2023
  29. 16/17 post-cocci: adjust comments for recent repo_* migrationÆvar Arnfjörð Bjarmason, Mar 17, 2023
  30. Elijah NewrenMar 19, 2023
  31. 17/17 libs: use "struct repository *" argument, not "the_repository"Ævar Arnfjörð Bjarmason, Mar 17, 2023
  32. Elijah NewrenMar 19, 2023
  33. Ævar Arnfjörð BjarmasonMar 28, 2023
  34. Junio C HamanoMar 17, 2023
  35. 00/17 cocci: remove "the_repository" wrapper macrosÆvar Arnfjörð Bjarmason, Mar 28, 2023
  36. 01/17 cocci: remove dead rule from "the_repository.pending.cocci"Ævar Arnfjörð Bjarmason, Mar 28, 2023
  37. 02/17 cocci: fix incorrect & verbose "the_repository" rulesÆvar Arnfjörð Bjarmason, Mar 28, 2023
  38. Taylor BlauMar 29, 2023
  39. 03/17 cocci: sort "the_repository" rules by headerÆvar Arnfjörð Bjarmason, Mar 28, 2023
  40. 04/17 cocci: add missing "the_repository" macros to "pending"Ævar Arnfjörð Bjarmason, Mar 28, 2023
  41. 06/17 cocci: apply the "commit-reach.h" part of "the_repository.pending"Ævar Arnfjörð Bjarmason, Mar 28, 2023
  42. 05/17 cocci: apply the "cache.h" part of "the_repository.pending"Ævar Arnfjörð Bjarmason, Mar 28, 2023
  43. 08/17 cocci: apply the "diff.h" part of "the_repository.pending"Ævar Arnfjörð Bjarmason, Mar 28, 2023
  44. 07/17 cocci: apply the "commit.h" part of "the_repository.pending"Ævar Arnfjörð Bjarmason, Mar 28, 2023
  45. 10/17 cocci: apply the "pretty.h" part of "the_repository.pending"Ævar Arnfjörð Bjarmason, Mar 28, 2023
  46. 11/17 cocci: apply the "packfile.h" part of "the_repository.pending"Ævar Arnfjörð Bjarmason, Mar 28, 2023
  47. 09/17 cocci: apply the "object-store.h" part of "the_repository.pending"Ævar Arnfjörð Bjarmason, Mar 28, 2023
  48. 12/17 cocci: apply the "promisor-remote.h" part of "the_repository.pending"Ævar Arnfjörð Bjarmason, Mar 28, 2023
  49. 13/17 cocci: apply the "refs.h" part of "the_repository.pending"Ævar Arnfjörð Bjarmason, Mar 28, 2023
  50. 14/17 cocci: apply the "rerere.h" part of "the_repository.pending"Ævar Arnfjörð Bjarmason, Mar 28, 2023
  51. 15/17 cocci: apply the "revision.h" part of "the_repository.pending"Ævar Arnfjörð Bjarmason, Mar 28, 2023
  52. 16/17 post-cocci: adjust comments for recent repo_* migrationÆvar Arnfjörð Bjarmason, Mar 28, 2023
  53. Taylor BlauMar 29, 2023
  54. 17/17 libs: use "struct repository *" argument, not "the_repository"Ævar Arnfjörð Bjarmason, Mar 28, 2023
  55. Junio C HamanoMar 28, 2023
  56. Junio C HamanoMar 28, 2023
  57. Junio C HamanoMar 29, 2023
  58. Taylor BlauMar 29, 2023
  59. Elijah NewrenMar 30, 2023
  60. Glen ChooMar 30, 2023

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.