@@ -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;
}
@@ -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
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@gmail.com/ Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> --- refs.c | 8 +++----- refs.h | 1 - 2 files changed, 3 insertions(+), 6 deletions(-)