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

Re: [PATCH 12/16] refs: drop `git_default_branch_name()`

From
Karthik Nayak <karthik.188@gmail.com>
Date
May 16, 2024, 18:44 UTC
Message-ID
<CAOLa=ZTippqNQdmFeKVj+z=synSaePiAm=_A5Nu9FGUrn7P52g@mail.gmail.com>
In-Reply-To
<09ca848e7d8a9c4f4d8927d8f01a1c3cb5d34e8c.1715836916.git.ps@pks.im>
Patrick Steinhardt <ps@pks.im> writes:
Show 35 quoted lines
> The `git_default_branch_name()` function is a thin wrapper around
> `repo_default_branch_name()` with two differences:
>
>   - We implicitly rely on `the_repository`.
>
>   - We cache the default branch name.
>
> None of the callsites of `git_default_branch_name()` are hot code paths
> though, so the caching of the branch name is not really required.
>
> Refactor the callsites to use `repo_default_branch_name()` instead and
> drop `git_default_branch_name()`, thus getting rid of one more case
> where we rely on `the_repository`.
>
> Signed-off-by: Patrick Steinhardt <ps@pks.im>
> ---
>  builtin/clone.c |  5 ++++-
>  builtin/var.c   |  2 +-
>  refs.c          | 10 ----------
>  refs.h          |  4 +---
>  remote.c        | 12 ++++++++----
>  setup.c         |  5 ++++-
>  6 files changed, 18 insertions(+), 20 deletions(-)
>
> diff --git a/builtin/clone.c b/builtin/clone.c
> index 554b29768c..bd3e8302ed 100644
> --- a/builtin/clone.c
> +++ b/builtin/clone.c
> @@ -1468,6 +1468,7 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
>  	} else if (remote_head) {
>  		our_head_points_at = NULL;
>  	} else {
> +		char *to_free = NULL;
>  		const char *branch;
>
This is a really good pattern, Makes it much cleaner to understand.
[snip]
Previous: Patrick SteinhardtNext: Patrick Steinhardt
Message 27 of 33 in “refs: drop all references to `the_repository`”
  1. 00/16 refs: drop all references to `the_repository`Patrick Steinhardt, May 16, 2024
  2. 01/16 refs: adjust names for `init` and `init_db` callbacksPatrick Steinhardt, May 16, 2024
  3. Karthik NayakMay 16, 2024
  4. 02/16 refs: rename `init_db` callback to avoid confusionPatrick Steinhardt, May 16, 2024
  5. Karthik NayakMay 16, 2024
  6. Junio C HamanoMay 16, 2024
  7. Patrick SteinhardtMay 17, 2024
  8. 03/16 refs: implement releasing ref storagesPatrick Steinhardt, May 16, 2024
  9. Karthik NayakMay 16, 2024
  10. Junio C HamanoMay 16, 2024
  11. Patrick SteinhardtMay 17, 2024
  12. Patrick SteinhardtMay 17, 2024
  13. 04/16 refs: track ref stores via strmapPatrick Steinhardt, May 16, 2024
  14. Junio C HamanoMay 16, 2024
  15. 05/16 refs: pass repo when retrieving submodule ref storePatrick Steinhardt, May 16, 2024
  16. Junio C HamanoMay 16, 2024
  17. Patrick SteinhardtMay 17, 2024
  18. 06/16 refs: refactor `resolve_gitlink_ref()` to accept a repositoryPatrick Steinhardt, May 16, 2024
  19. Junio C HamanoMay 16, 2024
  20. 07/16 refs: retrieve worktree ref stores via associated repositoryPatrick Steinhardt, May 16, 2024
  21. 08/16 refs: convert iteration over replace refs to accept ref storePatrick Steinhardt, May 16, 2024
  22. 09/16 refs: pass ref store when detecting dangling symrefsPatrick Steinhardt, May 16, 2024
  23. 10/16 refs: move object peeling into "object.c"Patrick Steinhardt, May 16, 2024
  24. Junio C HamanoMay 16, 2024
  25. 11/16 refs: pass repo when peeling objectsPatrick Steinhardt, May 16, 2024
  26. 12/16 refs: drop `git_default_branch_name()`Patrick Steinhardt, May 16, 2024
  27. Karthik NayakMay 16, 2024
  28. 13/16 refs: remove `dwim_log()`Patrick Steinhardt, May 16, 2024
  29. 14/16 refs/files: use correct repositoryPatrick Steinhardt, May 16, 2024
  30. 15/16 refs/files: remove references to `the_hash_algo`Patrick Steinhardt, May 16, 2024
  31. 16/16 refs/packed: remove references to `the_hash_algo`Patrick Steinhardt, May 16, 2024
  32. Karthik NayakMay 16, 2024
  33. Patrick SteinhardtMay 17, 2024

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.