{"thread":{"id":"29942","subject":"checkout -q not quiet enough","startedAt":"2012-03-13T18:19:03Z","lastAt":"2012-03-26T23:51:06Z","messageCount":5,"participants":["Randal L. Schwartz","Jeff King"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"186890","messageId":"86aa3k5ppk.fsf@red.stonehenge.com","threadId":"29942","inReplyTo":null,"subject":"checkout -q not quiet enough","fromName":"Randal L. Schwartz","fromEmail":"merlyn@stonehenge.com","sentAt":"2012-03-13T18:19:03Z","receivedAt":"2012-03-13T18:19:03Z","isPatch":false,"sender":{"key":"merlyn@stonehenge.com","avatar":"https://gravatar.com/avatar/dc528d210743ff0333e6213f9ee7b33b23f1b7bc1f3c5a8c2d819074ecd7ab19?d=mp&s=160"},"body":"\ncheckout without -q:\n\n  Switched to a new branch 'projects/DUH-11'\n  Branch projects/DUH-11 set up to track remote branch projects/DUH-11 from origin.\n\ncheckout with -q:\n\n  Branch projects/DUH-11 set up to track remote branch projects/DUH-11 from origin.\n\n\nBug or feature?  If feature, how do I get it \"more q'ey\"?\n\n-- \nRandal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095\n<merlyn@stonehenge.com> <URL:http://www.stonehenge.com/merlyn/>\nSmalltalk/Perl/Unix consulting, Technical writing, Comedy, etc. etc.\nSee http://methodsandmessages.posterous.com/ for Smalltalk discussion\n"},{"id":"186899","messageId":"20120313200842.GA23664@sigill.intra.peff.net","threadId":"29942","inReplyTo":"86aa3k5ppk.fsf@red.stonehenge.com","subject":"Re: checkout -q not quiet enough","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2012-03-13T20:08:43Z","receivedAt":"2012-03-13T20:08:43Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Tue, Mar 13, 2012 at 11:19:03AM -0700, Randal L. Schwartz wrote:\n\n> checkout without -q:\n> \n>   Switched to a new branch 'projects/DUH-11'\n>   Branch projects/DUH-11 set up to track remote branch projects/DUH-11 from origin.\n> \n> checkout with -q:\n> \n>   Branch projects/DUH-11 set up to track remote branch projects/DUH-11 from origin.\n> \n> Bug or feature?  If feature, how do I get it \"more q'ey\"?\n\nBug, I think. You'd need something like the patch below, except that:\n\n  1. It should probably collapse the many options to create_branch into\n     a \"flags\" field.\n\n  2. git-branch should probably learn \"-q\", as well, to suppress the\n     same message.\n\n---\ndiff --git a/branch.c b/branch.c\nindex 9971820..796da08 100644\n--- a/branch.c\n+++ b/branch.c\n@@ -101,7 +101,7 @@ void install_branch_config(int flag, const char *local, const char *origin, cons\n  * config.\n  */\n static int setup_tracking(const char *new_ref, const char *orig_ref,\n-                          enum branch_track track)\n+\t\t\t  enum branch_track track, int flags)\n {\n \tstruct tracking tracking;\n \n@@ -128,7 +128,7 @@ static int setup_tracking(const char *new_ref, const char *orig_ref,\n \t\treturn error(\"Not tracking: ambiguous information for ref %s\",\n \t\t\t\torig_ref);\n \n-\tinstall_branch_config(BRANCH_CONFIG_VERBOSE, new_ref, tracking.remote,\n+\tinstall_branch_config(flags, new_ref, tracking.remote,\n \t\t\t      tracking.src ? tracking.src : orig_ref);\n \n \tfree(tracking.src);\n@@ -191,7 +191,7 @@ int validate_new_branchname(const char *name, struct strbuf *ref,\n void create_branch(const char *head,\n \t\t   const char *name, const char *start_name,\n \t\t   int force, int reflog, int clobber_head,\n-\t\t   enum branch_track track)\n+\t\t   int quiet, enum branch_track track)\n {\n \tstruct ref_lock *lock = NULL;\n \tstruct commit *commit;\n@@ -201,6 +201,7 @@ void create_branch(const char *head,\n \tint forcing = 0;\n \tint dont_change_ref = 0;\n \tint explicit_tracking = 0;\n+\tint tracking_flags = quiet ? 0 : BRANCH_CONFIG_VERBOSE;\n \n \tif (track == BRANCH_TRACK_EXPLICIT || track == BRANCH_TRACK_OVERRIDE)\n \t\texplicit_tracking = 1;\n@@ -260,7 +261,7 @@ void create_branch(const char *head,\n \t\t\t start_name);\n \n \tif (real_ref && track)\n-\t\tsetup_tracking(ref.buf+11, real_ref, track);\n+\t\tsetup_tracking(ref.buf+11, real_ref, track, tracking_flags);\n \n \tif (!dont_change_ref)\n \t\tif (write_ref_sha1(lock, sha1, msg) < 0)\ndiff --git a/branch.h b/branch.h\nindex b99c5a3..923fc34 100644\n--- a/branch.h\n+++ b/branch.h\n@@ -13,8 +13,8 @@\n  * branch for (if any).\n  */\n void create_branch(const char *head, const char *name, const char *start_name,\n-\t\t   int force, int reflog,\n-\t\t   int clobber_head, enum branch_track track);\n+\t\t   int force, int reflog, int clobber_head, int quiet,\n+\t\t   enum branch_track track);\n \n /*\n  * Validates that the requested branch may be created, returning the\ndiff --git a/builtin/branch.c b/builtin/branch.c\nindex d8cccf7..f1eaf1e 100644\n--- a/builtin/branch.c\n+++ b/builtin/branch.c\n@@ -808,7 +808,7 @@ int cmd_branch(int argc, const char **argv, const char *prefix)\n \t\tif (kinds != REF_LOCAL_BRANCH)\n \t\t\tdie(_(\"-a and -r options to 'git branch' do not make sense with a branch name\"));\n \t\tcreate_branch(head, argv[0], (argc == 2) ? argv[1] : head,\n-\t\t\t      force_create, reflog, 0, track);\n+\t\t\t      force_create, reflog, 0, 0, track);\n \t} else\n \t\tusage_with_options(builtin_branch_usage, options);\n \ndiff --git a/builtin/checkout.c b/builtin/checkout.c\nindex 6b9061f..23fc56d 100644\n--- a/builtin/checkout.c\n+++ b/builtin/checkout.c\n@@ -543,6 +543,7 @@ static void update_refs_for_switch(struct checkout_opts *opts,\n \t\t\t\t      opts->new_branch_force ? 1 : 0,\n \t\t\t\t      opts->new_branch_log,\n \t\t\t\t      opts->new_branch_force ? 1 : 0,\n+\t\t\t\t      opts->quiet,\n \t\t\t\t      opts->track);\n \t\tnew->name = opts->new_branch;\n \t\tsetup_branch_path(new);\n"},{"id":"187798","messageId":"20120326234944.GA1901@sigill.intra.peff.net","threadId":"29942","inReplyTo":"20120313200842.GA23664@sigill.intra.peff.net","subject":"[PATCH 0/2] checkout/branch --quiet fixes","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2012-03-26T23:49:44Z","receivedAt":"2012-03-26T23:49:44Z","isPatch":true,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Tue, Mar 13, 2012 at 04:08:43PM -0400, Jeff King wrote:\n\n> > checkout without -q:\n> > \n> >   Switched to a new branch 'projects/DUH-11'\n> >   Branch projects/DUH-11 set up to track remote branch projects/DUH-11 from origin.\n> > \n> > checkout with -q:\n> > \n> >   Branch projects/DUH-11 set up to track remote branch projects/DUH-11 from origin.\n> > \n> > Bug or feature?  If feature, how do I get it \"more q'ey\"?\n> \n> Bug, I think. You'd need something like the patch below, except that:\n\nHere it is cleaned up and with commit messages.\n\n  [1/2]: checkout: suppress tracking message with \"-q\"\n  [2/2]: teach \"git branch\" a --quiet option\n\nNobody commented on my \"something like this\" patch, but I think that is\nlargely because this topic is insanely boring.\n\n-Peff\n"},{"id":"187799","messageId":"20120326235101.GA23290@sigill.intra.peff.net","threadId":"29942","inReplyTo":"20120326234944.GA1901@sigill.intra.peff.net","subject":"[PATCH 1/2] checkout: suppress tracking message with \"-q\"","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2012-03-26T23:51:01Z","receivedAt":"2012-03-26T23:51:01Z","isPatch":true,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"Like the \"switched to...\" message (which is already\nsuppressed by \"-q\"), this message is purely informational.\nLet's silence it if the user asked us to be quiet.\n\nThis patch is slightly more than a one-liner, because we\nhave to teach create_branch to propagate the flag all the\nway down to install_branch_config.\n\nSigned-off-by: Jeff King <peff@peff.net>\n---\n branch.c           |    9 +++++----\n branch.h           |    2 +-\n builtin/branch.c   |    2 +-\n builtin/checkout.c |    1 +\n 4 files changed, 8 insertions(+), 6 deletions(-)\n\ndiff --git a/branch.c b/branch.c\nindex 9971820..eccdaf9 100644\n--- a/branch.c\n+++ b/branch.c\n@@ -101,9 +101,10 @@ void install_branch_config(int flag, const char *local, const char *origin, cons\n  * config.\n  */\n static int setup_tracking(const char *new_ref, const char *orig_ref,\n-                          enum branch_track track)\n+\t\t\t  enum branch_track track, int quiet)\n {\n \tstruct tracking tracking;\n+\tint config_flags = quiet ? 0 : BRANCH_CONFIG_VERBOSE;\n \n \tif (strlen(new_ref) > 1024 - 7 - 7 - 1)\n \t\treturn error(\"Tracking not set up: name too long: %s\",\n@@ -128,7 +129,7 @@ static int setup_tracking(const char *new_ref, const char *orig_ref,\n \t\treturn error(\"Not tracking: ambiguous information for ref %s\",\n \t\t\t\torig_ref);\n \n-\tinstall_branch_config(BRANCH_CONFIG_VERBOSE, new_ref, tracking.remote,\n+\tinstall_branch_config(config_flags, new_ref, tracking.remote,\n \t\t\t      tracking.src ? tracking.src : orig_ref);\n \n \tfree(tracking.src);\n@@ -191,7 +192,7 @@ int validate_new_branchname(const char *name, struct strbuf *ref,\n void create_branch(const char *head,\n \t\t   const char *name, const char *start_name,\n \t\t   int force, int reflog, int clobber_head,\n-\t\t   enum branch_track track)\n+\t\t   int quiet, enum branch_track track)\n {\n \tstruct ref_lock *lock = NULL;\n \tstruct commit *commit;\n@@ -260,7 +261,7 @@ void create_branch(const char *head,\n \t\t\t start_name);\n \n \tif (real_ref && track)\n-\t\tsetup_tracking(ref.buf+11, real_ref, track);\n+\t\tsetup_tracking(ref.buf+11, real_ref, track, quiet);\n \n \tif (!dont_change_ref)\n \t\tif (write_ref_sha1(lock, sha1, msg) < 0)\ndiff --git a/branch.h b/branch.h\nindex b99c5a3..64173ab 100644\n--- a/branch.h\n+++ b/branch.h\n@@ -14,7 +14,7 @@\n  */\n void create_branch(const char *head, const char *name, const char *start_name,\n \t\t   int force, int reflog,\n-\t\t   int clobber_head, enum branch_track track);\n+\t\t   int clobber_head, int quiet, enum branch_track track);\n \n /*\n  * Validates that the requested branch may be created, returning the\ndiff --git a/builtin/branch.c b/builtin/branch.c\nindex d8cccf7..f1eaf1e 100644\n--- a/builtin/branch.c\n+++ b/builtin/branch.c\n@@ -808,7 +808,7 @@ int cmd_branch(int argc, const char **argv, const char *prefix)\n \t\tif (kinds != REF_LOCAL_BRANCH)\n \t\t\tdie(_(\"-a and -r options to 'git branch' do not make sense with a branch name\"));\n \t\tcreate_branch(head, argv[0], (argc == 2) ? argv[1] : head,\n-\t\t\t      force_create, reflog, 0, track);\n+\t\t\t      force_create, reflog, 0, 0, track);\n \t} else\n \t\tusage_with_options(builtin_branch_usage, options);\n \ndiff --git a/builtin/checkout.c b/builtin/checkout.c\nindex 6b9061f..23fc56d 100644\n--- a/builtin/checkout.c\n+++ b/builtin/checkout.c\n@@ -543,6 +543,7 @@ static void update_refs_for_switch(struct checkout_opts *opts,\n \t\t\t\t      opts->new_branch_force ? 1 : 0,\n \t\t\t\t      opts->new_branch_log,\n \t\t\t\t      opts->new_branch_force ? 1 : 0,\n+\t\t\t\t      opts->quiet,\n \t\t\t\t      opts->track);\n \t\tnew->name = opts->new_branch;\n \t\tsetup_branch_path(new);\n-- \n1.7.10.rc2.3.g0850\n"},{"id":"187800","messageId":"20120326235106.GB23290@sigill.intra.peff.net","threadId":"29942","inReplyTo":"20120326234944.GA1901@sigill.intra.peff.net","subject":"[PATCH 2/2] teach \"git branch\" a --quiet option","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2012-03-26T23:51:06Z","receivedAt":"2012-03-26T23:51:06Z","isPatch":true,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"There's currently no way to suppress the informational\n\"deleted branch...\" or \"set up tracking...\" messages.  This\npatch provides a \"-q\" option to do so.\n\nSigned-off-by: Jeff King <peff@peff.net>\n---\n Documentation/git-branch.txt |    5 +++++\n builtin/branch.c             |   16 ++++++++++------\n 2 files changed, 15 insertions(+), 6 deletions(-)\n\ndiff --git a/Documentation/git-branch.txt b/Documentation/git-branch.txt\nindex 6410c3d..e71370d 100644\n--- a/Documentation/git-branch.txt\n+++ b/Documentation/git-branch.txt\n@@ -126,6 +126,11 @@ OPTIONS\n \trelationship to upstream branch (if any). If given twice, print\n \tthe name of the upstream branch, as well.\n \n+-q::\n+--quiet::\n+\tBe more quiet when creating or deleting a branch, suppressing\n+\tnon-error messages.\n+\n --abbrev=<length>::\n \tAlter the sha1's minimum display length in the output listing.\n \tThe default value is 7 and can be overridden by the `core.abbrev`\ndiff --git a/builtin/branch.c b/builtin/branch.c\nindex f1eaf1e..5f150b4 100644\n--- a/builtin/branch.c\n+++ b/builtin/branch.c\n@@ -146,7 +146,8 @@ static int branch_merged(int kind, const char *name,\n \treturn merged;\n }\n \n-static int delete_branches(int argc, const char **argv, int force, int kinds)\n+static int delete_branches(int argc, const char **argv, int force, int kinds,\n+\t\t\t   int quiet)\n {\n \tstruct commit *rev, *head_rev = NULL;\n \tunsigned char sha1[20];\n@@ -216,9 +217,10 @@ static int delete_branches(int argc, const char **argv, int force, int kinds)\n \t\t\tret = 1;\n \t\t} else {\n \t\t\tstruct strbuf buf = STRBUF_INIT;\n-\t\t\tprintf(_(\"Deleted %sbranch %s (was %s).\\n\"), remote,\n-\t\t\t       bname.buf,\n-\t\t\t       find_unique_abbrev(sha1, DEFAULT_ABBREV));\n+\t\t\tif (!quiet)\n+\t\t\t\tprintf(_(\"Deleted %sbranch %s (was %s).\\n\"),\n+\t\t\t\t       remote, bname.buf,\n+\t\t\t\t       find_unique_abbrev(sha1, DEFAULT_ABBREV));\n \t\t\tstrbuf_addf(&buf, \"branch.%s\", bname.buf);\n \t\t\tif (git_config_rename_section(buf.buf, NULL) < 0)\n \t\t\t\twarning(_(\"Update of config-file failed\"));\n@@ -678,6 +680,7 @@ int cmd_branch(int argc, const char **argv, const char *prefix)\n \tint delete = 0, rename = 0, force_create = 0, list = 0;\n \tint verbose = 0, abbrev = -1, detached = 0;\n \tint reflog = 0, edit_description = 0;\n+\tint quiet = 0;\n \tenum branch_track track;\n \tint kinds = REF_LOCAL_BRANCH;\n \tstruct commit_list *with_commit = NULL;\n@@ -686,6 +689,7 @@ int cmd_branch(int argc, const char **argv, const char *prefix)\n \t\tOPT_GROUP(\"Generic options\"),\n \t\tOPT__VERBOSE(&verbose,\n \t\t\t\"show hash and subject, give twice for upstream branch\"),\n+\t\tOPT__QUIET(&quiet, \"suppress informational messages\"),\n \t\tOPT_SET_INT('t', \"track\",  &track, \"set up tracking mode (see git-pull(1))\",\n \t\t\tBRANCH_TRACK_EXPLICIT),\n \t\tOPT_SET_INT( 0, \"set-upstream\",  &track, \"change upstream info\",\n@@ -766,7 +770,7 @@ int cmd_branch(int argc, const char **argv, const char *prefix)\n \t\tabbrev = DEFAULT_ABBREV;\n \n \tif (delete)\n-\t\treturn delete_branches(argc, argv, delete > 1, kinds);\n+\t\treturn delete_branches(argc, argv, delete > 1, kinds, quiet);\n \telse if (list)\n \t\treturn print_ref_list(kinds, detached, verbose, abbrev,\n \t\t\t\t      with_commit, argv);\n@@ -808,7 +812,7 @@ int cmd_branch(int argc, const char **argv, const char *prefix)\n \t\tif (kinds != REF_LOCAL_BRANCH)\n \t\t\tdie(_(\"-a and -r options to 'git branch' do not make sense with a branch name\"));\n \t\tcreate_branch(head, argv[0], (argc == 2) ? argv[1] : head,\n-\t\t\t      force_create, reflog, 0, 0, track);\n+\t\t\t      force_create, reflog, 0, quiet, track);\n \t} else\n \t\tusage_with_options(builtin_branch_usage, options);\n \n-- \n1.7.10.rc2.3.g0850\n"}]}