The repo_default_branch_name() function introduced in 8747ebb7cde (init: allow setting the default for the initial branch name via the config, 2020-06-24) has never been used outside of this file, so let's make it static, its sibling function git_default_branch_name() is what external callers use. In addition the xstrfmt() to get the "full_ref" in the same commit isn't needed, we can use the "REFNAME_ALLOW_ONELEVEL" flag to check_refname_format() instead. This also happens to fix an issue with c150064dbe2 (leak tests: run various built-in tests in t00*.sh SANITIZE=leak, 2021-10-12) in "next" when combined with SANITIZE=leak and higher optimization flags on at least some GCC versions. See [1]. 1. https://lore.kernel.org/git/patch-1.1-5a47bf2e9c9-20211021T114223Z-avarab@xxxxxxxxx/ Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> --- refs.c | 8 +++----- refs.h | 1 - 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/refs.c b/refs.c index 7f019c2377e..ccb09acbf1d 100644 --- a/refs.c +++ b/refs.c @@ -571,11 +571,11 @@ static const char default_branch_name_advice[] = N_( "\tgit branch -m <name>\n" ); -char *repo_default_branch_name(struct repository *r, int quiet) +static char *repo_default_branch_name(struct repository *r, int quiet) { const char *config_key = "init.defaultbranch"; const char *config_display_key = "init.defaultBranch"; - char *ret = NULL, *full_ref; + char *ret = NULL; const char *env = getenv("GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME"); if (env && *env) @@ -589,10 +589,8 @@ char *repo_default_branch_name(struct repository *r, int quiet) advise(_(default_branch_name_advice), ret); } - full_ref = xstrfmt("refs/heads/%s", ret); - if (check_refname_format(full_ref, 0)) + if (check_refname_format(ret, REFNAME_ALLOW_ONELEVEL)) die(_("invalid branch name: %s = %s"), config_display_key, ret); - free(full_ref); return ret; } diff --git a/refs.h b/refs.h index d5099d4984e..77f899da6ef 100644 --- a/refs.h +++ b/refs.h @@ -171,7 +171,6 @@ int dwim_log(const char *str, int len, struct object_id *oid, char **ref); * return value of `git_default_branch_name()` is a singleton. */ const char *git_default_branch_name(int quiet); -char *repo_default_branch_name(struct repository *r, int quiet); /* * A ref_transaction represents a collection of reference updates that -- 2.33.1.1494.g88b39a443e1