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

Re: [PATCH 18/23] submodule: use submodule repos for object lookup

From
Stefan Beller <sbeller@google.com>
Date
Nov 15, 2018, 20:36 UTC
Message-ID
<CAGZ79kZ72eQPiQ_KW1QkiRqMFUAUpCQCHZdk3RSMVK7TGPE2aw@mail.gmail.com>
In-Reply-To
<20181115195416.21890-1-jonathantanmy@google.com>
On Thu, Nov 15, 2018 at 11:54 AM Jonathan Tan <jonathantanmy@google.com> wrote:
Show 14 quoted lines
>
> > +/*
> > + * Initialize 'out' based on the provided submodule path.
> > + *
> > + * Unlike repo_submodule_init, this tolerates submodules not present
> > + * in .gitmodules. This function exists only to preserve historical behavior,
> > + *
> > + * Returns 0 on success, -1 when the submodule is not present.
> >   */
> > -static void show_submodule_header(struct diff_options *o, const char *path,
> > +static struct repository *open_submodule(const char *path)
>
> The function documentation needs to be reworded - there's no "out", and
> the return value is now a possibly NULL pointer to struct repository.
Noted.
Show 15 quoted lines
>
> > +{
> > +     struct strbuf sb = STRBUF_INIT;
> > +     struct repository *out = xmalloc(sizeof(*out));
> > +
> > +     if (submodule_to_gitdir(&sb, path) || repo_init(out, sb.buf, NULL)) {
> > +             strbuf_release(&sb);
> > +             free(out);
> > +             return NULL;
> > +     }
> > +
> > +     out->submodule_prefix = xstrdup(path);
>
> I've discussed this submodule_prefix line before [1] - do we really need
> this? Tests pass even if I remove this line.
We might not need it yet as the tests indicate, but it's the right thing to do:
/*
 * Path from the root of the top-level superproject down to this
 * repository.  This is only non-NULL if the repository is initialized
 * as a submodule of another repository.
 */

We're not (yet) using this string in our error reporting, but I anticipate that we'll do eventually.

> Other than that, this patch looks good.

Thanks, Stefan

Previous: Jonathan TanNext: Stefan Beller
Message 21 of 30 in “[PATCHv3 00/23] Bring more repository handles into our code base”
  1. Stefan BellerNov 14, 2018
  2. 01/23 sha1_file: allow read_object to read objects in arbitrary repositoriesStefan Beller, Nov 14, 2018
  3. 02/23 packfile: allow has_packed_and_bad to handle arbitrary repositoriesStefan Beller, Nov 14, 2018
  4. 03/23 object-store: allow read_object_file_extended to read from any repoStefan Beller, Nov 14, 2018
  5. 04/23 object-store: prepare read_object_file to deal with any repoStefan Beller, Nov 14, 2018
  6. 05/23 object-store: prepare has_{sha1, object}_file to handle any repoStefan Beller, Nov 14, 2018
  7. 06/23 object: parse_object to honor its repository argumentStefan Beller, Nov 14, 2018
  8. 07/23 commit: allow parse_commit* to handle any repoStefan Beller, Nov 14, 2018
  9. 08/23 commit-reach.c: allow paint_down_to_common to handle any repoStefan Beller, Nov 14, 2018
  10. 09/23 commit-reach.c: allow merge_bases_many to handle any repoStefan Beller, Nov 14, 2018
  11. 10/23 commit-reach.c: allow remove_redundant to handle any repoStefan Beller, Nov 14, 2018
  12. 11/23 commit-reach.c: allow get_merge_bases_many_0 to handle any repoStefan Beller, Nov 14, 2018
  13. 12/23 commit-reach: prepare get_merge_bases to handle any repoStefan Beller, Nov 14, 2018
  14. 13/23 commit-reach: prepare in_merge_bases[_many] to handle any repoStefan Beller, Nov 14, 2018
  15. 14/23 commit: prepare get_commit_buffer to handle any repoStefan Beller, Nov 14, 2018
  16. 15/23 commit: prepare repo_unuse_commit_buffer to handle any repoStefan Beller, Nov 14, 2018
  17. 16/23 commit: prepare logmsg_reencode to handle arbitrary repositoriesStefan Beller, Nov 14, 2018
  18. 17/23 pretty: prepare format_commit_message to handle arbitrary repositoriesStefan Beller, Nov 14, 2018
  19. 18/23 submodule: use submodule repos for object lookupStefan Beller, Nov 14, 2018
  20. Jonathan TanNov 15, 2018
  21. Stefan BellerNov 15, 2018
  22. Stefan BellerDec 12, 2018
  23. submodule: correct documentation for open_submoduleStefan Beller, Dec 12, 2018
  24. 19/23 submodule: don't add submodule as odb for pushStefan Beller, Nov 14, 2018
  25. 20/23 commit-graph: convert remaining functions to handle any repoStefan Beller, Nov 14, 2018
  26. 21/23 commit: prepare free_commit_buffer and release_commit_memory for any repoStefan Beller, Nov 14, 2018
  27. 22/23 path.h: make REPO_GIT_PATH_FUNC repository agnosticStefan Beller, Nov 14, 2018
  28. 23/23 t/helper/test-repository: celebrate independence from the_repositoryStefan Beller, Nov 14, 2018
  29. Jonathan TanNov 15, 2018
  30. Derrick StoleeNov 16, 2018

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.