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

[PATCH v2 0/4] [GSOC][RFC] ref-filter: add %(rest) atom

From
ZheNing Hu via GitGitGadget <gitgitgadget@gmail.com>
Date
Jun 9, 2021, 16:11 UTC
Message-ID
<pull.976.v2.git.1623255121.gitgitgadget@gmail.com>
In-Reply-To
<pull.976.git.1623163082.gitgitgadget@gmail.com>

In order to let git cat-file --batch reuse ref-filter logic, the atom %(rest) and %(raw) are added to ref-filter.

Change from last version: Use printf "xxx" instead of printf "%b" "xxx" in test, ensure that strings containing NUL will not be truncated, to avoid the breakage of the test.

ZheNing Hu (4):
  [GSOC] ref-filter: add obj-type check in grab contents
  [GSOC] ref-filter: add %(raw) atom
  [GSOC] ref-filter: use non-const ref_format in *_atom_parser()
  [GSOC] ref-filter: add %(rest) atom
 Documentation/git-for-each-ref.txt |   9 ++
 builtin/tag.c                      |   2 +-
 ref-filter.c                       | 226 +++++++++++++++++++++--------
 ref-filter.h                       |   9 +-
 t/t3203-branch-output.sh           |   4 +
 t/t6300-for-each-ref.sh            | 211 +++++++++++++++++++++++++++
 t/t7004-tag.sh                     |   4 +
 t/t7030-verify-tag.sh              |   4 +
 8 files changed, 408 insertions(+), 61 deletions(-)
base-commit: 1197f1a46360d3ae96bd9c15908a3a6f8e562207
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-976%2Fadlternative%2Fref-filter-texconv-filters-v2-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-976/adlternative/ref-filter-texconv-filters-v2-v2
Pull-Request: https://github.com/gitgitgadget/git/pull/976
Range-diff vs v1:
 1:  48d256db5c34 = 1:  48d256db5c34 [GSOC] ref-filter: add obj-type check in grab contents
 2:  428d105ebbad ! 2:  abee6a03becb [GSOC] ref-filter: add %(raw) atom
     @@ t/t6300-for-each-ref.sh: test_atom refs/myblobs/first contents:body ""
      +'
      +
      +test_expect_success 'set up refs pointing to binary blob' '
     -+	printf "%b" "a\0b\0c" >blob1 &&
     -+	printf "%b" "a\0c\0b" >blob2 &&
     -+	printf "%b" "\0a\0b\0c" >blob3 &&
     -+	printf "%b" "abc" >blob4 &&
     -+	printf "%b" "\0 \0 \0 " >blob5 &&
     -+	printf "%b" "\0 \0a\0 " >blob6 &&
     -+	printf "%b" "  " >blob7 &&
     ++	printf "a\0b\0c" >blob1 &&
     ++	printf "a\0c\0b" >blob2 &&
     ++	printf "\0a\0b\0c" >blob3 &&
     ++	printf "abc" >blob4 &&
     ++	printf "\0 \0 \0 " >blob5 &&
     ++	printf "\0 \0a\0 " >blob6 &&
     ++	printf "  " >blob7 &&
      +	>blob8 &&
      +	git hash-object blob1 -w | xargs git update-ref refs/myblobs/blob1 &&
      +	git hash-object blob2 -w | xargs git update-ref refs/myblobs/blob2 &&
 3:  e4a5aeec0409 = 3:  c99d1d070a18 [GSOC] ref-filter: use non-const ref_format in *_atom_parser()
 4:  5e95292e3de2 = 4:  5a5b5f78aeea [GSOC] ref-filter: add %(rest) atom
-- 
gitgitgadget
Previous: Junio C HamanoNext: ZheNing Hu via GitGitGadget
Message 9 of 13 in “[GSOC][RFC] ref-filter: add %(rest) atom”
  1. 0/4 [GSOC][RFC] ref-filter: add %(rest) atomZheNing Hu via GitGitGadget, Jun 8, 2021
  2. 4/4 [GSOC] ref-filter: add %(rest) atomZheNing Hu via GitGitGadget, Jun 8, 2021
  3. 1/4 [GSOC] ref-filter: add obj-type check in grab contentsZheNing Hu via GitGitGadget, Jun 8, 2021
  4. 2/4 [GSOC] ref-filter: add %(raw) atomZheNing Hu via GitGitGadget, Jun 8, 2021
  5. 3/4 [GSOC] ref-filter: use non-const ref_format in *_atom_parser()ZheNing Hu via GitGitGadget, Jun 8, 2021
  6. Junio C HamanoJun 9, 2021
  7. ZheNing HuJun 9, 2021
  8. Junio C HamanoJun 9, 2021
  9. 0/4 [GSOC][RFC] ref-filter: add %(rest) atomZheNing Hu via GitGitGadget, Jun 9, 2021
  10. 3/4 [GSOC] ref-filter: use non-const ref_format in *_atom_parser()ZheNing Hu via GitGitGadget, Jun 9, 2021
  11. 2/4 [GSOC] ref-filter: add %(raw) atomZheNing Hu via GitGitGadget, Jun 9, 2021
  12. 4/4 [GSOC] ref-filter: add %(rest) atomZheNing Hu via GitGitGadget, Jun 9, 2021
  13. 1/4 [GSOC] ref-filter: add obj-type check in grab contentsZheNing Hu via GitGitGadget, Jun 9, 2021

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.