{"thread":{"id":"19345","subject":"[PATCH] Eliminate redirection to stdout and stderr when quiet option is available","startedAt":"2009-05-14T07:13:02Z","lastAt":"2009-05-14T07:48:37Z","messageCount":4,"participants":["Dan Loewenherz","Junio C Hamano","Johannes Schindelin"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"113895","messageId":"6f5a4e780905140013g75d85558tfaa3c85430f8a8a3@mail.gmail.com","threadId":"19345","inReplyTo":null,"subject":"[PATCH] Eliminate redirection to stdout and stderr when quiet option is available","fromName":"Dan Loewenherz","fromEmail":"daniel.loewenherz@yale.edu","sentAt":"2009-05-14T07:13:02Z","receivedAt":"2009-05-14T07:13:02Z","isPatch":true,"sender":{"key":"daniel.loewenherz@yale.edu","avatar":null},"body":"This follows an earlier commit (7bd93c1) that eliminates the usage of\n`>dev/null 2>&1` and friends when a `--quiet` option is available.\n\nSigned-off-by: Dan Loewenherz <daniel.loewenherz@yale.edu>\n---\n git-add--interactive.perl          |    2 +-\n git-am.sh                          |    2 +-\n git-cvsexportcommit.perl           |    2 +-\n git-cvsimport.perl                 |    2 +-\n git-lost-found.sh                  |    2 +-\n git-rebase--interactive.sh         |    8 ++++----\n git-rebase.sh                      |    2 +-\n git-stash.sh                       |   12 ++++++------\n git-submodule.sh                   |    6 +++---\n templates/hooks--pre-commit.sample |    2 +-\n 10 files changed, 20 insertions(+), 20 deletions(-)\n\ndiff --git a/git-add--interactive.perl b/git-add--interactive.perl\nindex f6e536e..e1106c9 100755\n--- a/git-add--interactive.perl\n+++ b/git-add--interactive.perl\n@@ -158,7 +158,7 @@ my $status_head = sprintf($status_fmt, 'staged',\n'unstaged', 'path');\n {\n \tmy $initial;\n \tsub is_initial_commit {\n-\t\t$initial = system('git rev-parse HEAD -- >/dev/null 2>&1') != 0\n+\t\t$initial = system('git rev-parse -q HEAD -- ') != 0\n \t\t\tunless defined $initial;\n \t\treturn $initial;\n \t}\ndiff --git a/git-am.sh b/git-am.sh\nindex 6d1848b..8a86d05 100755\n--- a/git-am.sh\n+++ b/git-am.sh\n@@ -36,7 +36,7 @@ cd_to_toplevel\n git var GIT_COMMITTER_IDENT >/dev/null ||\n \tdie \"You need to set your committer info first\"\n\n-if git rev-parse --verify -q HEAD >/dev/null\n+if git rev-parse --verify -q HEAD\n then\n \tHAS_HEAD=yes\n else\ndiff --git a/git-cvsexportcommit.perl b/git-cvsexportcommit.perl\nindex 6d9f0ef..a10303a 100755\n--- a/git-cvsexportcommit.perl\n+++ b/git-cvsexportcommit.perl\n@@ -127,7 +127,7 @@ my $go_back_to = 0;\n\n if ($opt_W) {\n     $opt_v && print \"Resetting to $parent\\n\";\n-    $go_back_to = `git symbolic-ref HEAD 2> /dev/null ||\n+    $go_back_to = `git symbolic-ref -q HEAD ||\n \tgit rev-parse HEAD` || die \"Could not determine current branch\";\n     system(\"git checkout -q $parent^0\") && die \"Could not check out $parent^0\";\n }\ndiff --git a/git-cvsimport.perl b/git-cvsimport.perl\nindex e439202..81b808e 100755\n--- a/git-cvsimport.perl\n+++ b/git-cvsimport.perl\n@@ -535,7 +535,7 @@ sub is_sha1 {\n\n sub get_headref ($) {\n \tmy $name = shift;\n-\tmy $r = `git rev-parse --verify '$name' 2>/dev/null`;\n+\tmy $r = `git rev-parse -q --verify '$name' `;\n \treturn undef unless $? == 0;\n \tchomp $r;\n \treturn $r;\ndiff --git a/git-lost-found.sh b/git-lost-found.sh\nindex 0b3e8c7..c64a308 100755\n--- a/git-lost-found.sh\n+++ b/git-lost-found.sh\n@@ -20,7 +20,7 @@ while read dangling type sha1\n do\n \tcase \"$dangling\" in\n \tdangling)\n-\t\tif git rev-parse -q --verify \"$sha1^0\" >/dev/null\n+\t\tif git rev-parse -q --verify \"$sha1^0\"\n \t\tthen\n \t\t\tdir=\"$laf/commit\"\n \t\t\tgit show-branch \"$sha1\"\ndiff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh\nindex 314cd36..118508e 100755\n--- a/git-rebase--interactive.sh\n+++ b/git-rebase--interactive.sh\n@@ -83,7 +83,7 @@ run_pre_rebase_hook () {\n\n require_clean_work_tree () {\n \t# test if working tree is dirty\n-\tgit rev-parse --verify HEAD > /dev/null &&\n+\tgit rev-parse -q --verify HEAD &&\n \tgit update-index --ignore-submodules --refresh &&\n \tgit diff-files --quiet --ignore-submodules &&\n \tgit diff-index --cached --quiet HEAD --ignore-submodules -- ||\n@@ -258,7 +258,7 @@ pick_one_preserving_merges () {\n \t\tif [ \"$1\" != \"-n\" ]\n \t\tthen\n \t\t\t# detach HEAD to current parent\n-\t\t\toutput git checkout $first_parent 2> /dev/null ||\n+\t\t\toutput git checkout -q $first_parent ||\n \t\t\t\tdie \"Cannot move HEAD to $first_parent\"\n \t\tfi\n\n@@ -498,7 +498,7 @@ do\n \t\ttest -d \"$DOTEST\" || die \"No interactive rebase running\"\n\n \t\t# Sanity check\n-\t\tgit rev-parse --verify HEAD >/dev/null ||\n+\t\tgit rev-parse -q --verify HEAD ||\n \t\t\tdie \"Cannot read HEAD\"\n \t\tgit update-index --ignore-submodules --refresh &&\n \t\t\tgit diff-files --quiet --ignore-submodules ||\n@@ -632,7 +632,7 @@ first and then run 'git rebase --continue' again.\"\n \t\tmkdir \"$DOTEST\" || die \"Could not create temporary $DOTEST\"\n\n \t\t: > \"$DOTEST\"/interactive || die \"Could not mark as interactive\"\n-\t\tgit symbolic-ref HEAD > \"$DOTEST\"/head-name 2> /dev/null ||\n+\t\tgit symbolic-ref -q HEAD > \"$DOTEST\"/head-name ||\n \t\t\techo \"detached HEAD\" > \"$DOTEST\"/head-name\n\n \t\techo $HEAD > \"$DOTEST\"/head\ndiff --git a/git-rebase.sh b/git-rebase.sh\nindex b83fd3f..da575d9 100755\n--- a/git-rebase.sh\n+++ b/git-rebase.sh\n@@ -91,7 +91,7 @@ call_merge () {\n \tcmt=\"$(cat \"$dotest/cmt.$1\")\"\n \techo \"$cmt\" > \"$dotest/current\"\n \thd=$(git rev-parse --verify HEAD)\n-\tcmt_name=$(git symbolic-ref HEAD 2> /dev/null || echo HEAD)\n+\tcmt_name=$(git symbolic-ref -q HEAD || echo HEAD)\n \tmsgnum=$(cat \"$dotest/msgnum\")\n \tend=$(cat \"$dotest/end\")\n \teval GITHEAD_$cmt='\"${cmt_name##refs/heads/}~$(($end - $msgnum))\"'\ndiff --git a/git-stash.sh b/git-stash.sh\nindex b9ace99..7661862 100755\n--- a/git-stash.sh\n+++ b/git-stash.sh\n@@ -30,7 +30,7 @@ clear_stash () {\n \tthen\n \t\tdie \"git stash clear with parameters is unimplemented\"\n \tfi\n-\tif current=$(git rev-parse --verify $ref_stash 2>/dev/null)\n+\tif current=$(git rev-parse -q --verify $ref_stash)\n \tthen\n \t\tgit update-ref -d $ref_stash $current\n \tfi\n@@ -129,7 +129,7 @@ save_stash () {\n }\n\n have_stash () {\n-\tgit rev-parse --verify $ref_stash >/dev/null 2>&1\n+\tgit rev-parse -q --verify $ref_stash\n }\n\n list_stash () {\n@@ -229,16 +229,16 @@ drop_stash () {\n \tfi\n \t# Verify supplied argument looks like a stash entry\n \ts=$(git rev-parse --verify \"$@\") &&\n-\tgit rev-parse --verify \"$s:\"   > /dev/null 2>&1 &&\n-\tgit rev-parse --verify \"$s^1:\" > /dev/null 2>&1 &&\n-\tgit rev-parse --verify \"$s^2:\" > /dev/null 2>&1 ||\n+\tgit rev-parse -q --verify \"$s:\" &&\n+\tgit rev-parse -q --verify \"$s^1:\" &&\n+\tgit rev-parse -q --verify \"$s^2:\" ||\n \t\tdie \"$*: not a valid stashed state\"\n\n \tgit reflog delete --updateref --rewrite \"$@\" &&\n \t\techo \"Dropped $* ($s)\" || die \"$*: Could not drop stash entry\"\n\n \t# clear_stash if we just dropped the last stash entry\n-\tgit rev-parse --verify \"$ref_stash@{0}\" > /dev/null 2>&1 || clear_stash\n+\tgit rev-parse -q --verify \"$ref_stash@{0}\" || clear_stash\n }\n\n apply_to_branch () {\ndiff --git a/git-submodule.sh b/git-submodule.sh\nindex 8e234a4..5ef605d 100755\n--- a/git-submodule.sh\n+++ b/git-submodule.sh\n@@ -459,7 +459,7 @@ cmd_summary() {\n \t\t\t# Always show modules deleted or type-changed (blob<->module)\n \t\t\ttest $status = D -o $status = T && echo \"$name\" && continue\n \t\t\t# Also show added or modified modules which are checked out\n-\t\t\tGIT_DIR=\"$name/.git\" git-rev-parse --git-dir >/dev/null 2>&1 &&\n+\t\t\tGIT_DIR=\"$name/.git\" git-rev-parse -q --git-dir &&\n \t\t\techo \"$name\"\n \t\tdone\n \t)\n@@ -493,11 +493,11 @@ cmd_summary() {\n \t\tmissing_dst=\n\n \t\ttest $mod_src = 160000 &&\n-\t\t! GIT_DIR=\"$name/.git\" git-rev-parse -q --verify $sha1_src^0 >/dev/null &&\n+\t\t! GIT_DIR=\"$name/.git\" git-rev-parse -q --verify $sha1_src^0 &&\n \t\tmissing_src=t\n\n \t\ttest $mod_dst = 160000 &&\n-\t\t! GIT_DIR=\"$name/.git\" git-rev-parse -q --verify $sha1_dst^0 >/dev/null &&\n+\t\t! GIT_DIR=\"$name/.git\" git-rev-parse -q --verify $sha1_dst^0 &&\n \t\tmissing_dst=t\n\n \t\ttotal_commits=\ndiff --git a/templates/hooks--pre-commit.sample\nb/templates/hooks--pre-commit.sample\nindex 0e49279..8ef822b 100755\n--- a/templates/hooks--pre-commit.sample\n+++ b/templates/hooks--pre-commit.sample\n@@ -7,7 +7,7 @@\n #\n # To enable this hook, rename this file to \"pre-commit\".\n\n-if git-rev-parse --verify HEAD 2>/dev/null\n+if git-rev-parse -q --verify HEAD\n then\n \tagainst=HEAD\n else\n-- \n1.6.3.1.10.gf494c2.dirty\n"},{"id":"113899","messageId":"7vzldgw3dz.fsf@alter.siamese.dyndns.org","threadId":"19345","inReplyTo":"6f5a4e780905140013g75d85558tfaa3c85430f8a8a3@mail.gmail.com","subject":"Re: [PATCH] Eliminate redirection to stdout and stderr when quiet option is available","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2009-05-14T07:27:20Z","receivedAt":"2009-05-14T07:27:20Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Dan Loewenherz <daniel.loewenherz@yale.edu> writes:\n\n> diff --git a/git-add--interactive.perl b/git-add--interactive.perl\n> index f6e536e..e1106c9 100755\n> --- a/git-add--interactive.perl\n> +++ b/git-add--interactive.perl\n> @@ -158,7 +158,7 @@ my $status_head = sprintf($status_fmt, 'staged',\n> 'unstaged', 'path');\n>  {\n>  \tmy $initial;\n>  \tsub is_initial_commit {\n> -\t\t$initial = system('git rev-parse HEAD -- >/dev/null 2>&1') != 0\n> +\t\t$initial = system('git rev-parse -q HEAD -- ') != 0\n\nIsn't this conversion wrong?\n\n\t$ git rev-parse -q HEAD --\n        95405ba6cf7adeaa4a066e8a3a1b76b73f7b9341\n\n> diff --git a/git-am.sh b/git-am.sh\n> index 6d1848b..8a86d05 100755\n> --- a/git-am.sh\n> +++ b/git-am.sh\n> @@ -36,7 +36,7 @@ cd_to_toplevel\n>  git var GIT_COMMITTER_IDENT >/dev/null ||\n>  \tdie \"You need to set your committer info first\"\n>\n> -if git rev-parse --verify -q HEAD >/dev/null\n> +if git rev-parse --verify -q HEAD\n\nLikewise.\n\nShould I spend more time myself, or will you double check the patch and\nresubmit?\n"},{"id":"113900","messageId":"alpine.DEB.1.00.0905140934560.27348@pacific.mpi-cbg.de","threadId":"19345","inReplyTo":"6f5a4e780905140013g75d85558tfaa3c85430f8a8a3@mail.gmail.com","subject":"Re: [PATCH] Eliminate redirection to stdout and stderr when quiet option is available","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2009-05-14T07:35:47Z","receivedAt":"2009-05-14T07:35:47Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Thu, 14 May 2009, Dan Loewenherz wrote:\n\n> This follows an earlier commit (7bd93c1) that eliminates the usage of\n> `>dev/null 2>&1` and friends when a `--quiet` option is available.\n\nI like this patch, but I think that\n\n\tgit rev-parse -q HEAD\n\n_does_ output a commit name...\n\nCiao,\nDscho\n"},{"id":"113904","messageId":"20090514074837.GA3676@andros.launchmodem.com","threadId":"19345","inReplyTo":"alpine.DEB.1.00.0905140934560.27348@pacific.mpi-cbg.de","subject":"Re: Eliminate redirection to stdout and stderr when quiet option is available","fromName":"Dan Loewenherz","fromEmail":"dloewenherz@gmail.com","sentAt":"2009-05-14T07:48:37Z","receivedAt":"2009-05-14T07:48:37Z","isPatch":false,"sender":{"key":"dloewenherz@gmail.com","avatar":"https://gravatar.com/avatar/69134b10dc6663fd8a4ac95edc0e556662c43c3acb226cec9f697cb8848198b2?d=mp&s=160"},"body":"On 14/05/09 09:35 +0200, Johannes Schindelin wrote:\n> I like this patch, but I think that\n> \n> \tgit rev-parse -q HEAD\n> \n> _does_ output a commit name...\n> \n\nThanks for pointing this out. I probably should have checked to see that \nthe changes still gave the desired output (or lack thereof). I'll resubmit \nthe patch.\n\nBest,\nDan\n"}]}