git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 06/15] submodule init: redirect stdout to stderr

From
Junio C Hamano <gitster@pobox.com>
Date
Apr 29, 2016, 18:27 UTC
Message-ID
<xmqqy47wxocr.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<1461703833-10350-7-git-send-email-sbeller@google.com>
Stefan Beller <sbeller@google.com> writes:
Show 10 quoted lines
> Reroute the output of stdout to stderr as it is just informative
> messages, not to be consumed by machines.
>
> We want to init submodules from the helper for `submodule update`
> in a later patch and the stdout output of said helper is consumed
> by the parts of `submodule update` which are still written in shell.
> So we have to be careful which messages are on stdout.
>
> Signed-off-by: Stefan Beller <sbeller@google.com>
> ---

I do not mind if this step is split out and queued as a separate follow-up to sb/submodule-init. The grouping and labelling is a bigger and more important change that deserves attention without distraction than this single step, and making as many such things graduate and allowing us to forget about them is better ;-)

Show 65 quoted lines
>  builtin/submodule--helper.c |  3 ++-
>  t/t7406-submodule-update.sh | 24 ++++++++++++++++++------
>  2 files changed, 20 insertions(+), 7 deletions(-)
>
> diff --git a/builtin/submodule--helper.c b/builtin/submodule--helper.c
> index 23d7224..7b9a4d7 100644
> --- a/builtin/submodule--helper.c
> +++ b/builtin/submodule--helper.c
> @@ -362,7 +362,8 @@ static void init_submodule(const char *path, const char *prefix, int quiet)
>  			die(_("Failed to register url for submodule path '%s'"),
>  			    displaypath);
>  		if (!quiet)
> -			printf(_("Submodule '%s' (%s) registered for path '%s'\n"),
> +			fprintf(stderr,
> +				_("Submodule '%s' (%s) registered for path '%s'\n"),
>  				sub->name, url, displaypath);
>  	}
>  
> diff --git a/t/t7406-submodule-update.sh b/t/t7406-submodule-update.sh
> index fd741f5..5f27879 100755
> --- a/t/t7406-submodule-update.sh
> +++ b/t/t7406-submodule-update.sh
> @@ -108,24 +108,36 @@ pwd=$(pwd)
>  
>  cat <<EOF >expect
>  Submodule path '../super': checked out '$supersha1'
> -Submodule 'merging' ($pwd/merging) registered for path '../super/merging'
> -Submodule 'none' ($pwd/none) registered for path '../super/none'
> -Submodule 'rebasing' ($pwd/rebasing) registered for path '../super/rebasing'
> -Submodule 'submodule' ($pwd/submodule) registered for path '../super/submodule'
>  Submodule path '../super/merging': checked out '$mergingsha1'
>  Submodule path '../super/none': checked out '$nonesha1'
>  Submodule path '../super/rebasing': checked out '$rebasingsha1'
>  Submodule path '../super/submodule': checked out '$submodulesha1'
>  EOF
>  
> +cat <<EOF >expect2
> +Submodule 'merging' ($pwd/merging) registered for path '../super/merging'
> +Submodule 'none' ($pwd/none) registered for path '../super/none'
> +Submodule 'rebasing' ($pwd/rebasing) registered for path '../super/rebasing'
> +Submodule 'submodule' ($pwd/submodule) registered for path '../super/submodule'
> +Cloning into '$pwd/recursivesuper/super/merging'...
> +done.
> +Cloning into '$pwd/recursivesuper/super/none'...
> +done.
> +Cloning into '$pwd/recursivesuper/super/rebasing'...
> +done.
> +Cloning into '$pwd/recursivesuper/super/submodule'...
> +done.
> +EOF
> +
>  test_expect_success 'submodule update --init --recursive from subdirectory' '
>  	git -C recursivesuper/super reset --hard HEAD^ &&
>  	(cd recursivesuper &&
>  	 mkdir tmp &&
>  	 cd tmp &&
> -	 git submodule update --init --recursive ../super >../../actual
> +	 git submodule update --init --recursive ../super >../../actual 2>../../actual2
>  	) &&
> -	test_cmp expect actual
> +	test_cmp expect actual &&
> +	test_cmp expect2 actual2
>  '
>  
>  apos="'";
Previous: Stefan BellerNext: Stefan Beller
Message 22 of 48 in “submodule groups (once again)”
  1. 00/15 submodule groups (once again)Stefan Beller, Apr 26, 2016
  2. 01/15 string_list: add string_list_duplicateStefan Beller, Apr 26, 2016
  3. Junio C HamanoApr 26, 2016
  4. Stefan BellerApr 27, 2016
  5. Junio C HamanoApr 27, 2016
  6. Stefan BellerApr 27, 2016
  7. Junio C HamanoApr 27, 2016
  8. Stefan BellerApr 27, 2016
  9. 02/15 submodule doc: write down what we want to achieve in this seriesStefan Beller, Apr 26, 2016
  10. Junio C HamanoApr 26, 2016
  11. 03/15 submodule add: label submodules if asked toStefan Beller, Apr 26, 2016
  12. Junio C HamanoApr 26, 2016
  13. Jacob KellerApr 26, 2016
  14. Stefan BellerApr 26, 2016
  15. Jacob KellerApr 27, 2016
  16. 04/15 submodule-config: keep labels aroundStefan Beller, Apr 26, 2016
  17. 05/15 submodule-config: check if submodule a submodule is in a groupStefan Beller, Apr 26, 2016
  18. Junio C HamanoApr 26, 2016
  19. Junio C HamanoApr 26, 2016
  20. Stefan BellerApr 27, 2016
  21. 06/15 submodule init: redirect stdout to stderrStefan Beller, Apr 26, 2016
  22. Junio C HamanoApr 29, 2016
  23. Stefan BellerApr 29, 2016
  24. 07/15 submodule deinit: loose requirement for giving '.'Stefan Beller, Apr 26, 2016
  25. Junio C HamanoApr 29, 2016
  26. 08/15 submodule--helper list: respect submodule groupsStefan Beller, Apr 26, 2016
  27. Junio C HamanoApr 29, 2016
  28. 09/15 submodule--helper init: respect submodule groupsStefan Beller, Apr 26, 2016
  29. 10/15 submodule--helper update_clone: respect submodule groupsStefan Beller, Apr 26, 2016
  30. 11/15 diff: ignore submodules excluded by groupsStefan Beller, Apr 26, 2016
  31. Junio C HamanoApr 29, 2016
  32. Stefan BellerApr 29, 2016
  33. Stefan BellerMay 5, 2016
  34. Junio C HamanoMay 5, 2016
  35. Stefan BellerMay 5, 2016
  36. Junio C HamanoMay 5, 2016
  37. Stefan BellerMay 5, 2016
  38. Junio C HamanoMay 5, 2016
  39. Junio C HamanoMay 6, 2016
  40. Stefan BellerMay 6, 2016
  41. Junio C HamanoMay 6, 2016
  42. 12/15 git submodule summary respects groupsStefan Beller, Apr 26, 2016
  43. Junio C HamanoApr 29, 2016
  44. 13/15 cmd_status: respect submodule groupsStefan Beller, Apr 26, 2016
  45. 14/15 cmd_diff: respect submodule groupsStefan Beller, Apr 26, 2016
  46. 15/15 clone: allow specification of submodules to be clonedStefan Beller, Apr 26, 2016
  47. Junio C HamanoApr 26, 2016
  48. Junio C HamanoApr 26, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.