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

[PATCH v4 0/2] name-rev: deprecate --stdin in favor of --annotate-stdin

From
John Cai via GitGitGadget <gitgitgadget@gmail.com>
Date
Jan 4, 2022, 14:49 UTC
Message-ID
<pull.1171.v4.git.git.1641307776.gitgitgadget@gmail.com>
In-Reply-To
<pull.1171.v3.git.git.1641221261.gitgitgadget@gmail.com>

Introduce a --annotate-stdin that is functionally equivalent of --stdin. --stdin does not behave as --stdin in other subcommands, such as pack-objects whereby it takes one argument per line. Since --stdin can be a confusing and misleading name, the goal is to rename it to --annotate-stdin.

This is the first step in a process of eventually fully deprecating --stdin. This change also adds a warning to --stdin warning that it will be removed in the future.

See https://lore.kernel.org/git/xmqqsfuh1pxz.fsf@gitster.g/ for discussion.
changes since v3:
 * use strbuf_getline instead of strbuf_getwholeline (based on Junio's
   feedback)
 * fixed commit message s/annotate-text/annotate-stdin (based on Junio's
   feedback)
 * since strbuf_getline does not keep the trailing terminator, add back '\n'
   with strbuf_addchr
 * reordered documentation blocks based on (Philip Oakley's feedback)
 * fixed doc typos in example block
John Cai (2):
  name-rev: deprecate --stdin in favor of --annotate-stdin
  name-rev.c: use strbuf_getline instead of limited size buffer
 Documentation/git-name-rev.txt       | 30 ++++++++++++++++++++++++++--
 builtin/name-rev.c                   | 28 ++++++++++++++++----------
 t/t3412-rebase-root.sh               |  2 +-
 t/t4202-log.sh                       |  2 +-
 t/t6007-rev-list-cherry-pick-file.sh | 26 ++++++++++++------------
 t/t6012-rev-list-simplify.sh         |  2 +-
 t/t6111-rev-list-treesame.sh         |  3 ++-
 t/t6120-describe.sh                  |  9 +++++++--
 8 files changed, 71 insertions(+), 31 deletions(-)
base-commit: c8b2ade48c204690119936ada89cd938c476c5c2
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1171%2Fjohn-cai%2Fjc%2Fdeprecate-name-rev-stdin-v4
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1171/john-cai/jc/deprecate-name-rev-stdin-v4
Pull-Request: https://github.com/git/git/pull/1171
Range-diff vs v3:
 1:  55ec2a5fa3e ! 1:  4e9200922a4 name-rev: deprecate --stdin in favor of --annotate-text
     @@ Metadata
      Author: John Cai <johncai86@gmail.com>
      
       ## Commit message ##
     -    name-rev: deprecate --stdin in favor of --annotate-text
     +    name-rev: deprecate --stdin in favor of --annotate-stdin
      
     -    Introduce a --annotate-text that is functionally equivalent of --stdin.
     +    Introduce a --annotate-stdin that is functionally equivalent of --stdin.
          --stdin does not behave as --stdin in other subcommands, such as
          pack-objects whereby it takes one argument per line. Since --stdin can
     -    be a confusing and misleading name, rename it to --annotate-text.
     +    be a confusing and misleading name, rename it to --annotate-stdin.
      
          This change adds a warning to --stdin warning that it will be removed in
          the future.
     @@ Commit message
      
       ## Documentation/git-name-rev.txt ##
      @@ Documentation/git-name-rev.txt: OPTIONS
     + --all::
       	List all commits reachable from all refs
       
     - --stdin::
     -+	This option is deprecated in favor of 'git name-rev --annotate-stdin'.
     -+	They are functionally equivalent.
     -+
     +---stdin::
      +--annotate-stdin::
       	Transform stdin by substituting all the 40-character SHA-1
       	hexes (say $hex) with "$hex ($rev_name)".  When used with
     @@ Documentation/git-name-rev.txt: OPTIONS
      -	altogether.  Intended for the scripter's use.
      +	altogether.
      +
     -+	For example:
     -++
     ++For example:
     ++
      +----------
      +$ cat sample.txt
      +
     @@ Documentation/git-name-rev.txt: OPTIONS
      +$ git name-rev --annotate-stdin <sample.txt
      +
      +An abbreviated revision 2ae0a9cb82 will not be substituted.
     -+The full name after substitution is 2ae0a9cb8298185a94e5998086f380a355dd8907
     -+(master),
     ++The full name after substitution is 2ae0a9cb8298185a94e5998086f380a355dd8907 (master),
      +while its tree object is 70d105cc79e63b81cfdcb08a15297c23e60b07ad
      +
      +$ git name-rev --name-only --annotate-stdin <sample.txt
      +
      +An abbreviated revision 2ae0a9cb82 will not be substituted.
     -+The full name is master,
     ++The full name after substitution is master,
      +while its tree object is 70d105cc79e63b81cfdcb08a15297c23e60b07ad
      +----------
     ++
     ++--stdin::
     ++	This option is deprecated in favor of 'git name-rev --annotate-stdin'.
     ++	They are functionally equivalent.
       
       --name-only::
       	Instead of printing both the SHA-1 and the name, print only
 2:  e4bd09ccf75 ! 2:  18f77ab9dde name-rev.c: use strbuf_getline instead of limited size buffer
     @@ builtin/name-rev.c: int cmd_name_rev(int argc, const char **argv, const char *pr
      -			if (!p)
      -				break;
      -			name_rev_line(p, &data);
     -+		while (strbuf_getwholeline(&sb, stdin, '\n') != EOF) {
     ++		while (strbuf_getline(&sb, stdin) != EOF) {
     ++			strbuf_addch(&sb, '\n');
      +			name_rev_line(sb.buf, &data);
       		}
      +		strbuf_release(&sb);
-- 
gitgitgadget
Previous: Junio C HamanoNext: John Cai via GitGitGadget
Message 19 of 43 in “name-rev: deprecate --stdin in favor of --annotate-text”
  1. name-rev: deprecate --stdin in favor of --annotate-textJohn Cai via GitGitGadget, Dec 26, 2021
  2. Junio C HamanoDec 27, 2021
  3. John CaiDec 28, 2021
  4. Junio C HamanoDec 31, 2021
  5. Johannes SchindelinJan 1, 2022
  6. 0/2 name-rev: deprecate --stdin in favor of --anotate-textJohn Cai via GitGitGadget, Dec 29, 2021
  7. 1/2 name-rev: deprecate --stdin in favor of --annotate-textJohn Cai via GitGitGadget, Dec 29, 2021
  8. Junio C HamanoDec 30, 2021
  9. 2/2 name-rev.c: use strbuf_getline instead of limited size bufferJohn Cai via GitGitGadget, Dec 29, 2021
  10. 0/2 name-rev: deprecate --stdin in favor of --annotate-stdinJohn Cai via GitGitGadget, Jan 3, 2022
  11. 1/2 name-rev: deprecate --stdin in favor of --annotate-textJohn Cai via GitGitGadget, Jan 3, 2022
  12. Junio C HamanoJan 4, 2022
  13. Junio C HamanoJan 4, 2022
  14. Philip OakleyJan 4, 2022
  15. Junio C HamanoJan 4, 2022
  16. Eric SunshineJan 4, 2022
  17. 2/2 name-rev.c: use strbuf_getline instead of limited size bufferJohn Cai via GitGitGadget, Jan 3, 2022
  18. Junio C HamanoJan 4, 2022
  19. 0/2 name-rev: deprecate --stdin in favor of --annotate-stdinJohn Cai via GitGitGadget, Jan 4, 2022
  20. 1/2 name-rev: deprecate --stdin in favor of --annotate-stdinJohn Cai via GitGitGadget, Jan 4, 2022
  21. Junio C HamanoJan 4, 2022
  22. Phillip WoodJan 5, 2022
  23. Junio C HamanoJan 5, 2022
  24. Junio C HamanoJan 5, 2022
  25. 2/2 name-rev.c: use strbuf_getline instead of limited size bufferJohn Cai via GitGitGadget, Jan 4, 2022
  26. John CaiJan 4, 2022
  27. 0/2 name-rev: deprecate --stdin in favor of --annotate-stdinJohn Cai via GitGitGadget, Jan 5, 2022
  28. 2/2 name-rev.c: use strbuf_getline instead of limited size bufferJohn Cai via GitGitGadget, Jan 5, 2022
  29. 1/2 name-rev: deprecate --stdin in favor of --annotate-stdinJohn Cai via GitGitGadget, Jan 5, 2022
  30. Junio C HamanoJan 5, 2022
  31. 0/2 name-rev: deprecate --stdin in favor of --annotate-stdinJohn Cai via GitGitGadget, Jan 5, 2022
  32. 1/2 name-rev: deprecate --stdin in favor of --annotate-stdinJohn Cai via GitGitGadget, Jan 5, 2022
  33. 2/2 name-rev.c: use strbuf_getline instead of limited size bufferJohn Cai via GitGitGadget, Jan 5, 2022
  34. Junio C HamanoJan 5, 2022
  35. 0/2 name-rev: deprecate --stdin in favor of --annotate-stdinJohn Cai via GitGitGadget, Jan 5, 2022
  36. 1/2 name-rev: deprecate --stdin in favor of --annotate-stdinJohn Cai via GitGitGadget, Jan 5, 2022
  37. John CaiJan 8, 2022
  38. Junio C HamanoJan 10, 2022
  39. John CaiJan 10, 2022
  40. Junio C HamanoJan 10, 2022
  41. Phillip WoodJan 11, 2022
  42. 2/2 name-rev.c: use strbuf_getline instead of limited size bufferJohn Cai via GitGitGadget, Jan 5, 2022
  43. Ævar Arnfjörð BjarmasonJan 18, 2022

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.