Re: checkout -q not quiet enough
From: Jeff King <hidden>
Date: 2016-06-15 22:53:18
Subsystem:
the rest · Maintainer:
Linus Torvalds
On Tue, Mar 13, 2012 at 11:19:03AM -0700, Randal L. Schwartz wrote:
checkout without -q: Switched to a new branch 'projects/DUH-11' Branch projects/DUH-11 set up to track remote branch projects/DUH-11 from origin. checkout with -q: Branch projects/DUH-11 set up to track remote branch projects/DUH-11 from origin. Bug or feature? If feature, how do I get it "more q'ey"?
Bug, I think. You'd need something like the patch below, except that:
1. It should probably collapse the many options to create_branch into
a "flags" field.
2. git-branch should probably learn "-q", as well, to suppress the
same message.
---diff --git a/branch.c b/branch.c
index 9971820..796da08 100644
--- a/branch.c
+++ b/branch.c@@ -101,7 +101,7 @@ void install_branch_config(int flag, const char *local, const char *origin, cons * config. */ static int setup_tracking(const char *new_ref, const char *orig_ref, - enum branch_track track) + enum branch_track track, int flags) { struct tracking tracking;
@@ -128,7 +128,7 @@ static int setup_tracking(const char *new_ref, const char *orig_ref, return error("Not tracking: ambiguous information for ref %s", orig_ref); - install_branch_config(BRANCH_CONFIG_VERBOSE, new_ref, tracking.remote, + install_branch_config(flags, new_ref, tracking.remote, tracking.src ? tracking.src : orig_ref); free(tracking.src);
@@ -191,7 +191,7 @@ int validate_new_branchname(const char *name, struct strbuf *ref, void create_branch(const char *head, const char *name, const char *start_name, int force, int reflog, int clobber_head, - enum branch_track track) + int quiet, enum branch_track track) { struct ref_lock *lock = NULL; struct commit *commit;
@@ -201,6 +201,7 @@ void create_branch(const char *head, int forcing = 0; int dont_change_ref = 0; int explicit_tracking = 0; + int tracking_flags = quiet ? 0 : BRANCH_CONFIG_VERBOSE; if (track == BRANCH_TRACK_EXPLICIT || track == BRANCH_TRACK_OVERRIDE) explicit_tracking = 1;
@@ -260,7 +261,7 @@ void create_branch(const char *head, start_name); if (real_ref && track) - setup_tracking(ref.buf+11, real_ref, track); + setup_tracking(ref.buf+11, real_ref, track, tracking_flags); if (!dont_change_ref) if (write_ref_sha1(lock, sha1, msg) < 0)
diff --git a/branch.h b/branch.h
index b99c5a3..923fc34 100644
--- a/branch.h
+++ b/branch.h@@ -13,8 +13,8 @@ * branch for (if any). */ void create_branch(const char *head, const char *name, const char *start_name, - int force, int reflog, - int clobber_head, enum branch_track track); + int force, int reflog, int clobber_head, int quiet, + enum branch_track track); /* * Validates that the requested branch may be created, returning the
diff --git a/builtin/branch.c b/builtin/branch.c
index d8cccf7..f1eaf1e 100644
--- a/builtin/branch.c
+++ b/builtin/branch.c@@ -808,7 +808,7 @@ int cmd_branch(int argc, const char **argv, const char *prefix) if (kinds != REF_LOCAL_BRANCH) die(_("-a and -r options to 'git branch' do not make sense with a branch name")); create_branch(head, argv[0], (argc == 2) ? argv[1] : head, - force_create, reflog, 0, track); + force_create, reflog, 0, 0, track); } else usage_with_options(builtin_branch_usage, options);
diff --git a/builtin/checkout.c b/builtin/checkout.c
index 6b9061f..23fc56d 100644
--- a/builtin/checkout.c
+++ b/builtin/checkout.c@@ -543,6 +543,7 @@ static void update_refs_for_switch(struct checkout_opts *opts, opts->new_branch_force ? 1 : 0, opts->new_branch_log, opts->new_branch_force ? 1 : 0, + opts->quiet, opts->track); new->name = opts->new_branch; setup_branch_path(new);