All of lore.kernel.org
 help / color / mirror / Atom feed
* checkout -q not quiet enough
@ 2012-03-13 18:19 Randal L. Schwartz
  2012-03-13 20:08 ` Jeff King
  0 siblings, 1 reply; 5+ messages in thread
From: Randal L. Schwartz @ 2012-03-13 18:19 UTC (permalink / raw)
  To: git


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"?

-- 
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<merlyn@stonehenge.com> <URL:http://www.stonehenge.com/merlyn/>
Smalltalk/Perl/Unix consulting, Technical writing, Comedy, etc. etc.
See http://methodsandmessages.posterous.com/ for Smalltalk discussion

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: checkout -q not quiet enough
  2012-03-13 18:19 checkout -q not quiet enough Randal L. Schwartz
@ 2012-03-13 20:08 ` Jeff King
  2012-03-26 23:49   ` [PATCH 0/2] checkout/branch --quiet fixes Jeff King
  0 siblings, 1 reply; 5+ messages in thread
From: Jeff King @ 2012-03-13 20:08 UTC (permalink / raw)
  To: Randal L. Schwartz; +Cc: git

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);

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 0/2] checkout/branch --quiet fixes
  2012-03-13 20:08 ` Jeff King
@ 2012-03-26 23:49   ` Jeff King
  2012-03-26 23:51     ` [PATCH 1/2] checkout: suppress tracking message with "-q" Jeff King
  2012-03-26 23:51     ` [PATCH 2/2] teach "git branch" a --quiet option Jeff King
  0 siblings, 2 replies; 5+ messages in thread
From: Jeff King @ 2012-03-26 23:49 UTC (permalink / raw)
  To: Randal L. Schwartz; +Cc: Junio C Hamano, git

On Tue, Mar 13, 2012 at 04:08:43PM -0400, Jeff King 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:

Here it is cleaned up and with commit messages.

  [1/2]: checkout: suppress tracking message with "-q"
  [2/2]: teach "git branch" a --quiet option

Nobody commented on my "something like this" patch, but I think that is
largely because this topic is insanely boring.

-Peff

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/2] checkout: suppress tracking message with "-q"
  2012-03-26 23:49   ` [PATCH 0/2] checkout/branch --quiet fixes Jeff King
@ 2012-03-26 23:51     ` Jeff King
  2012-03-26 23:51     ` [PATCH 2/2] teach "git branch" a --quiet option Jeff King
  1 sibling, 0 replies; 5+ messages in thread
From: Jeff King @ 2012-03-26 23:51 UTC (permalink / raw)
  To: Randal L. Schwartz; +Cc: Junio C Hamano, git

Like the "switched to..." message (which is already
suppressed by "-q"), this message is purely informational.
Let's silence it if the user asked us to be quiet.

This patch is slightly more than a one-liner, because we
have to teach create_branch to propagate the flag all the
way down to install_branch_config.

Signed-off-by: Jeff King <peff@peff.net>
---
 branch.c           |    9 +++++----
 branch.h           |    2 +-
 builtin/branch.c   |    2 +-
 builtin/checkout.c |    1 +
 4 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/branch.c b/branch.c
index 9971820..eccdaf9 100644
--- a/branch.c
+++ b/branch.c
@@ -101,9 +101,10 @@ 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 quiet)
 {
 	struct tracking tracking;
+	int config_flags = quiet ? 0 : BRANCH_CONFIG_VERBOSE;
 
 	if (strlen(new_ref) > 1024 - 7 - 7 - 1)
 		return error("Tracking not set up: name too long: %s",
@@ -128,7 +129,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(config_flags, new_ref, tracking.remote,
 			      tracking.src ? tracking.src : orig_ref);
 
 	free(tracking.src);
@@ -191,7 +192,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;
@@ -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, quiet);
 
 	if (!dont_change_ref)
 		if (write_ref_sha1(lock, sha1, msg) < 0)
diff --git a/branch.h b/branch.h
index b99c5a3..64173ab 100644
--- a/branch.h
+++ b/branch.h
@@ -14,7 +14,7 @@
  */
 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 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);
-- 
1.7.10.rc2.3.g0850

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/2] teach "git branch" a --quiet option
  2012-03-26 23:49   ` [PATCH 0/2] checkout/branch --quiet fixes Jeff King
  2012-03-26 23:51     ` [PATCH 1/2] checkout: suppress tracking message with "-q" Jeff King
@ 2012-03-26 23:51     ` Jeff King
  1 sibling, 0 replies; 5+ messages in thread
From: Jeff King @ 2012-03-26 23:51 UTC (permalink / raw)
  To: Randal L. Schwartz; +Cc: Junio C Hamano, git

There's currently no way to suppress the informational
"deleted branch..." or "set up tracking..." messages.  This
patch provides a "-q" option to do so.

Signed-off-by: Jeff King <peff@peff.net>
---
 Documentation/git-branch.txt |    5 +++++
 builtin/branch.c             |   16 ++++++++++------
 2 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/Documentation/git-branch.txt b/Documentation/git-branch.txt
index 6410c3d..e71370d 100644
--- a/Documentation/git-branch.txt
+++ b/Documentation/git-branch.txt
@@ -126,6 +126,11 @@ OPTIONS
 	relationship to upstream branch (if any). If given twice, print
 	the name of the upstream branch, as well.
 
+-q::
+--quiet::
+	Be more quiet when creating or deleting a branch, suppressing
+	non-error messages.
+
 --abbrev=<length>::
 	Alter the sha1's minimum display length in the output listing.
 	The default value is 7 and can be overridden by the `core.abbrev`
diff --git a/builtin/branch.c b/builtin/branch.c
index f1eaf1e..5f150b4 100644
--- a/builtin/branch.c
+++ b/builtin/branch.c
@@ -146,7 +146,8 @@ static int branch_merged(int kind, const char *name,
 	return merged;
 }
 
-static int delete_branches(int argc, const char **argv, int force, int kinds)
+static int delete_branches(int argc, const char **argv, int force, int kinds,
+			   int quiet)
 {
 	struct commit *rev, *head_rev = NULL;
 	unsigned char sha1[20];
@@ -216,9 +217,10 @@ static int delete_branches(int argc, const char **argv, int force, int kinds)
 			ret = 1;
 		} else {
 			struct strbuf buf = STRBUF_INIT;
-			printf(_("Deleted %sbranch %s (was %s).\n"), remote,
-			       bname.buf,
-			       find_unique_abbrev(sha1, DEFAULT_ABBREV));
+			if (!quiet)
+				printf(_("Deleted %sbranch %s (was %s).\n"),
+				       remote, bname.buf,
+				       find_unique_abbrev(sha1, DEFAULT_ABBREV));
 			strbuf_addf(&buf, "branch.%s", bname.buf);
 			if (git_config_rename_section(buf.buf, NULL) < 0)
 				warning(_("Update of config-file failed"));
@@ -678,6 +680,7 @@ int cmd_branch(int argc, const char **argv, const char *prefix)
 	int delete = 0, rename = 0, force_create = 0, list = 0;
 	int verbose = 0, abbrev = -1, detached = 0;
 	int reflog = 0, edit_description = 0;
+	int quiet = 0;
 	enum branch_track track;
 	int kinds = REF_LOCAL_BRANCH;
 	struct commit_list *with_commit = NULL;
@@ -686,6 +689,7 @@ int cmd_branch(int argc, const char **argv, const char *prefix)
 		OPT_GROUP("Generic options"),
 		OPT__VERBOSE(&verbose,
 			"show hash and subject, give twice for upstream branch"),
+		OPT__QUIET(&quiet, "suppress informational messages"),
 		OPT_SET_INT('t', "track",  &track, "set up tracking mode (see git-pull(1))",
 			BRANCH_TRACK_EXPLICIT),
 		OPT_SET_INT( 0, "set-upstream",  &track, "change upstream info",
@@ -766,7 +770,7 @@ int cmd_branch(int argc, const char **argv, const char *prefix)
 		abbrev = DEFAULT_ABBREV;
 
 	if (delete)
-		return delete_branches(argc, argv, delete > 1, kinds);
+		return delete_branches(argc, argv, delete > 1, kinds, quiet);
 	else if (list)
 		return print_ref_list(kinds, detached, verbose, abbrev,
 				      with_commit, argv);
@@ -808,7 +812,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, 0, track);
+			      force_create, reflog, 0, quiet, track);
 	} else
 		usage_with_options(builtin_branch_usage, options);
 
-- 
1.7.10.rc2.3.g0850

^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2012-03-26 23:51 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-03-13 18:19 checkout -q not quiet enough Randal L. Schwartz
2012-03-13 20:08 ` Jeff King
2012-03-26 23:49   ` [PATCH 0/2] checkout/branch --quiet fixes Jeff King
2012-03-26 23:51     ` [PATCH 1/2] checkout: suppress tracking message with "-q" Jeff King
2012-03-26 23:51     ` [PATCH 2/2] teach "git branch" a --quiet option Jeff King

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.