]> git.ipfire.org Git - thirdparty/git.git/commitdiff
get_default_branch_name(): prepare for showing some advice
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Fri, 11 Dec 2020 11:36:56 +0000 (11:36 +0000)
committerJunio C Hamano <gitster@pobox.com>
Sun, 13 Dec 2020 23:53:50 +0000 (15:53 -0800)
We are about to introduce a message giving users running `git init` some
advice about `init.defaultBranch`. This will necessarily be done in
`repo_default_branch_name()`.

Not all code paths want to show that advice, though. In particular, the
`git clone` codepath _specifically_ asks for `init_db()` to be quiet,
via the `INIT_DB_QUIET` flag.

In preparation for showing users above-mentioned advice, let's change
the function signature of `get_default_branch_name()` to accept the
parameter `quiet`.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/clone.c
builtin/init-db.c
refs.c
refs.h
remote.c

index a0841923cfe03663068d47ea2cc78a35b3dd3733..64b178401121bb6434333b7f51f44284756a04c5 100644 (file)
@@ -1323,7 +1323,7 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
                remote_head = NULL;
                option_no_checkout = 1;
                if (!option_bare) {
-                       const char *branch = git_default_branch_name();
+                       const char *branch = git_default_branch_name(0);
                        char *ref = xstrfmt("refs/heads/%s", branch);
 
                        install_branch_config(0, branch, remote_name, ref);
index 01bc648d416fa0167da43897f826209019948d61..dcc45bef5148117c4b0c3180fcbd94d9f099a1cc 100644 (file)
@@ -202,7 +202,8 @@ void initialize_repository_version(int hash_algo, int reinit)
 static int create_default_files(const char *template_path,
                                const char *original_git_dir,
                                const char *initial_branch,
-                               const struct repository_format *fmt)
+                               const struct repository_format *fmt,
+                               int quiet)
 {
        struct stat st1;
        struct strbuf buf = STRBUF_INIT;
@@ -267,7 +268,7 @@ static int create_default_files(const char *template_path,
                char *ref;
 
                if (!initial_branch)
-                       initial_branch = git_default_branch_name();
+                       initial_branch = git_default_branch_name(quiet);
 
                ref = xstrfmt("refs/heads/%s", initial_branch);
                if (check_refname_format(ref, 0) < 0)
@@ -438,7 +439,8 @@ int init_db(const char *git_dir, const char *real_git_dir,
        validate_hash_algorithm(&repo_fmt, hash);
 
        reinit = create_default_files(template_dir, original_git_dir,
-                                     initial_branch, &repo_fmt);
+                                     initial_branch, &repo_fmt,
+                                     flags & INIT_DB_QUIET);
        if (reinit && initial_branch)
                warning(_("re-init: ignored --initial-branch=%s"),
                        initial_branch);
diff --git a/refs.c b/refs.c
index 392f0bbf68b14926a81aa248ca7af3e43d5215eb..8df03122d69d911d6222d0891a8b1826fbae85c8 100644 (file)
--- a/refs.c
+++ b/refs.c
@@ -562,7 +562,7 @@ void expand_ref_prefix(struct strvec *prefixes, const char *prefix)
                strvec_pushf(prefixes, *p, len, prefix);
 }
 
-char *repo_default_branch_name(struct repository *r)
+char *repo_default_branch_name(struct repository *r, int quiet)
 {
        const char *config_key = "init.defaultbranch";
        const char *config_display_key = "init.defaultBranch";
@@ -585,12 +585,12 @@ char *repo_default_branch_name(struct repository *r)
        return ret;
 }
 
-const char *git_default_branch_name(void)
+const char *git_default_branch_name(int quiet)
 {
        static char *ret;
 
        if (!ret)
-               ret = repo_default_branch_name(the_repository);
+               ret = repo_default_branch_name(the_repository, quiet);
 
        return ret;
 }
diff --git a/refs.h b/refs.h
index 66955181569b3d71363d8da752245f2a1efb7b1f..ff05d2e9fe27cfc3486c42a1cfcf99941eaf9774 100644 (file)
--- a/refs.h
+++ b/refs.h
@@ -170,8 +170,8 @@ int dwim_log(const char *str, int len, struct object_id *oid, char **ref);
  * The return value of `repo_default_branch_name()` is an allocated string. The
  * return value of `git_default_branch_name()` is a singleton.
  */
-const char *git_default_branch_name(void);
-char *repo_default_branch_name(struct repository *r);
+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
index 8a6dbbb9030ad1464e4c3adf706ad54f1694408c..bdb88d4b7dda1fad04d0b4813b7462b335e86fab 100644 (file)
--- a/remote.c
+++ b/remote.c
@@ -284,7 +284,7 @@ static void read_branches_file(struct remote *remote)
        if (frag)
                *(frag++) = '\0';
        else
-               frag = (char *)git_default_branch_name();
+               frag = (char *)git_default_branch_name(0);
 
        add_url_alias(remote, strbuf_detach(&buf, NULL));
        refspec_appendf(&remote->fetch, "refs/heads/%s:refs/heads/%s",
@@ -2206,7 +2206,8 @@ struct ref *guess_remote_head(const struct ref *head,
 
        /* If a remote branch exists with the default branch name, let's use it. */
        if (!all) {
-               char *ref = xstrfmt("refs/heads/%s", git_default_branch_name());
+               char *ref = xstrfmt("refs/heads/%s",
+                                   git_default_branch_name(0));
 
                r = find_ref_by_name(refs, ref);
                free(ref);