All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
From: ZheNing Hu <adlternative@gmail.com>
To: Hariom verma <hariom18599@gmail.com>
Cc: "ZheNing Hu via GitGitGadget" <gitgitgadget@gmail.com>,
	git <git@vger.kernel.org>, "Junio C Hamano" <gitster@pobox.com>,
	"Christian Couder" <christian.couder@gmail.com>,
	"Bagas Sanjaya" <bagasdotme@gmail.com>,
	"Jeff King" <peff@peff.net>,
	"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Subject: Re: [PATCH v6 12/15] [GSOC] cat-file: reuse ref-filter logic
Date: Mon, 28 Jun 2021 21:51:54 +0800	[thread overview]
Message-ID: <CAOLTT8RLX2Zn7C3hd5JhiAYK9TptXbraf=jobL7Cj+p=uLitvA@mail.gmail.com> (raw)
In-Reply-To: <CA+CkUQ-gHT=g3KwcBXkp8eBX7wfY_HkT1=hhRiYLap-Av2w5MA@mail.gmail.com>

Hi,

Hariom verma <hariom18599@gmail.com> 于2021年6月28日周一 下午3:47写道:
>
> Hi,
>
> >
> > Most of the atoms in `for-each-ref --format` are now supported,
> > such as `%(tree)`, `%(parent)`, `%(author)`, `%(tagger)`, `%(if)`,
> > `%(then)`, `%(else)`, `%(end)`. But these atoms will be rejected:
> > `%(refname)`, `%(symref)`, `%(upstream)`, `%(push)`, `%(worktreepath)`,
> > `%(flag)`, `%(HEAD)`, because our objects don't have a refname.
>
> It's not clear why some atoms are rejected?
>
> Are we going to support them in later commits? (or sometime in the future)
> OR
> We are never going to support them. Because they make no sense to
> cat-file? (or whatever the reason)
>

Because in "git for-each-ref"'s "family", ref_array_item is generated
by filter_refs(),
which uses ref_filter_handler() to fill ref_array_item with ref's
data. In "git cat-file",
we care about the object, not the ref. Therefore, ref_array_item is
only filled with
{oid, rest} in batch_object_write() in cat-file.c. We cannot represent
some specific
ref-related data in "git cat-file", so we cannot have some atoms in ref_filter.
Yes, we probably won't support them in the future.

From an object-oriented point of view, the atom supported by
"cat-file" should be a
parent class, "for-each-ref"',"branch","tag"... they have more
specific object details (ref),
their supported atom should be a derived class, they can support more atoms.

> Whatever is the reason, I think it's a good idea to include it in the
> commit message.
>

Yeah.  The sentence "because our objects don't have a refname." may not
correctly express the reason for rejecting these atoms.  I will add
more descriptions.

> --
> Hariom

Thanks.
--
ZheNing Hu

  reply	other threads:[~2021-06-28 13:52 UTC|newest]

Thread overview: 121+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-12 11:14 [PATCH 0/8] [GSOC][RFC] cat-file: reuse ref-filter logic ZheNing Hu via GitGitGadget
2021-06-12 11:14 ` [PATCH 1/8] [GSOC] ref-filter: add obj-type check in grab contents ZheNing Hu via GitGitGadget
2021-06-17  7:04   ` Ævar Arnfjörð Bjarmason
2021-06-17  7:28     ` Junio C Hamano
2021-06-12 11:14 ` [PATCH 2/8] [GSOC] ref-filter: add %(raw) atom ZheNing Hu via GitGitGadget
2021-06-17  7:10   ` Ævar Arnfjörð Bjarmason
2021-06-17  7:34     ` Junio C Hamano
2021-06-17  9:22     ` ZheNing Hu
2021-06-17 14:37       ` Ævar Arnfjörð Bjarmason
2021-06-17 16:14         ` ZheNing Hu
2021-06-18 10:49           ` Ævar Arnfjörð Bjarmason
2021-06-18 13:47             ` Christian Couder
2021-06-12 11:14 ` [PATCH 3/8] [GSOC] ref-filter: use non-const ref_format in *_atom_parser() ZheNing Hu via GitGitGadget
2021-06-12 11:14 ` [PATCH 4/8] [GSOC] ref-filter: add %(rest) atom ZheNing Hu via GitGitGadget
2021-06-12 11:14 ` [PATCH 5/8] [GSOC] ref-filter: teach get_object() return useful value ZheNing Hu via GitGitGadget
2021-06-12 20:09   ` Christian Couder
2021-06-13 10:11     ` ZheNing Hu
2021-06-17  7:22   ` Ævar Arnfjörð Bjarmason
2021-06-17 10:01     ` ZheNing Hu
2021-06-12 11:14 ` [PATCH 6/8] [GSOC] cat-file: reuse ref-filter logic ZheNing Hu via GitGitGadget
2021-06-12 11:14 ` [PATCH 7/8] [GSOC] cat-file: reuse err buf in batch_objet_write() ZheNing Hu via GitGitGadget
2021-06-17  7:16   ` Ævar Arnfjörð Bjarmason
2021-06-17  8:05     ` ZheNing Hu
2021-06-12 11:14 ` [PATCH 8/8] [GSOC] cat-file: re-implement --textconv, --filters options ZheNing Hu via GitGitGadget
2021-06-17  7:18   ` Ævar Arnfjörð Bjarmason
2021-06-17  9:53     ` ZheNing Hu
2021-06-15 13:28 ` [PATCH v2 0/9] [GSOC][RFC] cat-file: reuse ref-filter logic ZheNing Hu via GitGitGadget
2021-06-15 13:28   ` [PATCH v2 1/9] [GSOC] ref-filter: add obj-type check in grab contents ZheNing Hu via GitGitGadget
2021-06-15 13:28   ` [PATCH v2 2/9] [GSOC] ref-filter: add %(raw) atom ZheNing Hu via GitGitGadget
2021-06-15 13:28   ` [PATCH v2 3/9] [GSOC] ref-filter: use non-const ref_format in *_atom_parser() ZheNing Hu via GitGitGadget
2021-06-15 13:29   ` [PATCH v2 4/9] [GSOC] ref-filter: add %(rest) atom ZheNing Hu via GitGitGadget
2021-06-15 13:29   ` [PATCH v2 5/9] [GSOC] ref-filter: teach get_object() return useful value ZheNing Hu via GitGitGadget
2021-06-16  7:36     ` Junio C Hamano
2021-06-17  7:23       ` ZheNing Hu
2021-06-15 13:29   ` [PATCH v2 6/9] [GSOC] ref-filter: introduce free_array_item_internal() function ZheNing Hu via GitGitGadget
2021-06-16  7:49     ` Junio C Hamano
2021-06-17  8:03       ` ZheNing Hu
2021-06-15 13:29   ` [PATCH v2 7/9] [GSOC] cat-file: reuse ref-filter logic ZheNing Hu via GitGitGadget
2021-06-15 13:29   ` [PATCH v2 8/9] [GSOC] cat-file: reuse err buf in batch_objet_write() ZheNing Hu via GitGitGadget
2021-06-15 13:29   ` [PATCH v2 9/9] [GSOC] cat-file: re-implement --textconv, --filters options ZheNing Hu via GitGitGadget
2021-06-16  7:29   ` [PATCH v2 0/9] [GSOC][RFC] cat-file: reuse ref-filter logic Junio C Hamano
2021-06-17  6:07     ` ZheNing Hu
2021-06-17  7:26   ` Ævar Arnfjörð Bjarmason
2021-06-17 10:02     ` ZheNing Hu
2021-06-19  7:02   ` [PATCH v3 00/10] " ZheNing Hu via GitGitGadget
2021-06-19  7:02     ` [PATCH v3 01/10] [GSOC] ref-filter: add obj-type check in grab contents ZheNing Hu via GitGitGadget
2021-06-19  7:02     ` [PATCH v3 02/10] [GSOC] ref-filter: add %(raw) atom ZheNing Hu via GitGitGadget
2021-06-19  7:02     ` [PATCH v3 03/10] [GSOC] ref-filter: --format=%(raw) re-support --perl ZheNing Hu via GitGitGadget
2021-06-19  7:02     ` [PATCH v3 04/10] [GSOC] ref-filter: use non-const ref_format in *_atom_parser() ZheNing Hu via GitGitGadget
2021-06-19  7:02     ` [PATCH v3 05/10] [GSOC] ref-filter: add %(rest) atom ZheNing Hu via GitGitGadget
2021-06-19  7:02     ` [PATCH v3 06/10] [GSOC] ref-filter: pass get_object() return value to their callers ZheNing Hu via GitGitGadget
2021-06-19  7:02     ` [PATCH v3 07/10] [GSOC] ref-filter: introduce free_ref_array_item_value() function ZheNing Hu via GitGitGadget
2021-06-19  7:02     ` [PATCH v3 08/10] [GSOC] cat-file: reuse ref-filter logic ZheNing Hu via GitGitGadget
2021-06-21  5:55       ` Christian Couder
2021-06-21 13:05         ` ZheNing Hu
2021-06-19  7:02     ` [PATCH v3 09/10] [GSOC] cat-file: reuse err buf in batch_object_write() ZheNing Hu via GitGitGadget
2021-06-19  7:03     ` [PATCH v3 10/10] [GSOC] cat-file: re-implement --textconv, --filters options ZheNing Hu via GitGitGadget
2021-06-22  3:20     ` [PATCH v4 00/14] [GSOC][RFC] cat-file: reuse ref-filter logic ZheNing Hu via GitGitGadget
2021-06-22  3:20       ` [PATCH v4 01/14] [GSOC] ref-filter: add obj-type check in grab contents ZheNing Hu via GitGitGadget
2021-06-22  3:20       ` [PATCH v4 02/14] [GSOC] ref-filter: add %(raw) atom ZheNing Hu via GitGitGadget
2021-06-24  4:14         ` Bagas Sanjaya
2021-06-24  8:23           ` ZheNing Hu
2021-06-22  3:20       ` [PATCH v4 03/14] [GSOC] ref-filter: --format=%(raw) re-support --perl ZheNing Hu via GitGitGadget
2021-06-22  3:20       ` [PATCH v4 04/14] [GSOC] ref-filter: use non-const ref_format in *_atom_parser() ZheNing Hu via GitGitGadget
2021-06-22  3:20       ` [PATCH v4 05/14] [GSOC] ref-filter: add %(rest) atom ZheNing Hu via GitGitGadget
2021-06-22  3:20       ` [PATCH v4 06/14] [GSOC] ref-filter: pass get_object() return value to their callers ZheNing Hu via GitGitGadget
2021-06-24  4:02         ` Bagas Sanjaya
2021-06-22  3:20       ` [PATCH v4 07/14] [GSOC] ref-filter: introduce free_ref_array_item_value() function ZheNing Hu via GitGitGadget
2021-06-22  3:20       ` [PATCH v4 08/14] [GSOC] ref-filter: add cat_file_mode in struct ref_format ZheNing Hu via GitGitGadget
2021-06-22  3:20       ` [PATCH v4 09/14] [GSOC] ref-filter: modify the error message and value in get_object ZheNing Hu via GitGitGadget
2021-06-22  3:20       ` [PATCH v4 10/14] [GSOC] cat-file: add has_object_file() check ZheNing Hu via GitGitGadget
2021-06-22  3:20       ` [PATCH v4 11/14] [GSOC] cat-file: change batch_objects parameter name ZheNing Hu via GitGitGadget
2021-06-24  4:07         ` Bagas Sanjaya
2021-06-22  3:20       ` [PATCH v4 12/14] [GSOC] cat-file: reuse ref-filter logic ZheNing Hu via GitGitGadget
2021-06-22  3:20       ` [PATCH v4 13/14] [GSOC] cat-file: reuse err buf in batch_object_write() ZheNing Hu via GitGitGadget
2021-06-22  3:20       ` [PATCH v4 14/14] [GSOC] cat-file: re-implement --textconv, --filters options ZheNing Hu via GitGitGadget
2021-06-25 16:02       ` [PATCH v5 00/15] [GSOC][RFC] cat-file: reuse ref-filter logic ZheNing Hu via GitGitGadget
2021-06-25 16:02         ` [PATCH v5 01/15] [GSOC] ref-filter: add obj-type check in grab contents ZheNing Hu via GitGitGadget
2021-06-25 16:02         ` [PATCH v5 02/15] [GSOC] ref-filter: add %(raw) atom ZheNing Hu via GitGitGadget
2021-06-26  0:42           ` Bagas Sanjaya
2021-06-27 11:43             ` ZheNing Hu
2021-06-25 16:02         ` [PATCH v5 03/15] [GSOC] ref-filter: --format=%(raw) re-support --perl ZheNing Hu via GitGitGadget
2021-06-25 16:02         ` [PATCH v5 04/15] [GSOC] ref-filter: use non-const ref_format in *_atom_parser() ZheNing Hu via GitGitGadget
2021-06-25 16:02         ` [PATCH v5 05/15] [GSOC] ref-filter: add %(rest) atom ZheNing Hu via GitGitGadget
2021-06-25 16:02         ` [PATCH v5 06/15] [GSOC] ref-filter: pass get_object() return value to their callers ZheNing Hu via GitGitGadget
2021-06-25 16:02         ` [PATCH v5 07/15] [GSOC] ref-filter: introduce free_ref_array_item_value() function ZheNing Hu via GitGitGadget
2021-06-25 16:02         ` [PATCH v5 08/15] [GSOC] ref-filter: add cat_file_mode in struct ref_format ZheNing Hu via GitGitGadget
2021-06-25 16:02         ` [PATCH v5 09/15] [GSOC] ref-filter: modify the error message and value in get_object ZheNing Hu via GitGitGadget
2021-06-25 16:02         ` [PATCH v5 10/15] [GSOC] cat-file: add has_object_file() check ZheNing Hu via GitGitGadget
2021-06-25 16:02         ` [PATCH v5 11/15] [GSOC] cat-file: change batch_objects parameter name ZheNing Hu via GitGitGadget
2021-06-25 16:02         ` [PATCH v5 12/15] [GSOC] cat-file: reuse ref-filter logic ZheNing Hu via GitGitGadget
2021-06-26 17:26           ` Hariom verma
2021-06-27 11:31             ` ZheNing Hu
2021-06-26 18:08           ` Hariom verma
2021-06-27 11:34             ` ZheNing Hu
2021-06-25 16:02         ` [PATCH v5 13/15] [GSOC] cat-file: reuse err buf in batch_object_write() ZheNing Hu via GitGitGadget
2021-06-25 16:02         ` [PATCH v5 14/15] [GSOC] cat-file: re-implement --textconv, --filters options ZheNing Hu via GitGitGadget
2021-06-25 16:02         ` [PATCH v5 15/15] [GSOC] ref-filter: remove grab_oid() function ZheNing Hu via GitGitGadget
2021-06-27 12:35         ` [PATCH v6 00/15] [GSOC][RFC] cat-file: reuse ref-filter logic ZheNing Hu via GitGitGadget
2021-06-27 12:35           ` [PATCH v6 01/15] [GSOC] ref-filter: add obj-type check in grab contents ZheNing Hu via GitGitGadget
2021-06-27 12:35           ` [PATCH v6 02/15] [GSOC] ref-filter: add %(raw) atom ZheNing Hu via GitGitGadget
2021-06-28  6:49             ` Bagas Sanjaya
2021-06-27 12:35           ` [PATCH v6 03/15] [GSOC] ref-filter: --format=%(raw) re-support --perl ZheNing Hu via GitGitGadget
2021-06-27 12:35           ` [PATCH v6 04/15] [GSOC] ref-filter: use non-const ref_format in *_atom_parser() ZheNing Hu via GitGitGadget
2021-06-27 12:35           ` [PATCH v6 05/15] [GSOC] ref-filter: add %(rest) atom ZheNing Hu via GitGitGadget
2021-06-27 12:35           ` [PATCH v6 06/15] [GSOC] ref-filter: pass get_object() return value to their callers ZheNing Hu via GitGitGadget
2021-06-27 12:35           ` [PATCH v6 07/15] [GSOC] ref-filter: introduce free_ref_array_item_value() function ZheNing Hu via GitGitGadget
2021-06-27 12:35           ` [PATCH v6 08/15] [GSOC] ref-filter: add cat_file_mode in struct ref_format ZheNing Hu via GitGitGadget
2021-06-27 12:35           ` [PATCH v6 09/15] [GSOC] ref-filter: modify the error message and value in get_object ZheNing Hu via GitGitGadget
2021-06-27 12:35           ` [PATCH v6 10/15] [GSOC] cat-file: add has_object_file() check ZheNing Hu via GitGitGadget
2021-06-27 12:35           ` [PATCH v6 11/15] [GSOC] cat-file: change batch_objects parameter name ZheNing Hu via GitGitGadget
2021-06-27 12:35           ` [PATCH v6 12/15] [GSOC] cat-file: reuse ref-filter logic ZheNing Hu via GitGitGadget
2021-06-28  7:46             ` Hariom verma
2021-06-28 13:51               ` ZheNing Hu [this message]
2021-06-27 12:35           ` [PATCH v6 13/15] [GSOC] cat-file: reuse err buf in batch_object_write() ZheNing Hu via GitGitGadget
2021-06-27 12:35           ` [PATCH v6 14/15] [GSOC] cat-file: re-implement --textconv, --filters options ZheNing Hu via GitGitGadget
2021-06-27 12:35           ` [PATCH v6 15/15] [GSOC] ref-filter: remove grab_oid() function ZheNing Hu via GitGitGadget
2021-06-30 22:04           ` [PATCH v6 00/15] [GSOC][RFC] cat-file: reuse ref-filter logic Junio C Hamano
2021-07-01 12:39             ` ZheNing Hu
2021-07-01 14:17               ` Junio C Hamano
2021-07-09 10:04                 ` ZheNing Hu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAOLTT8RLX2Zn7C3hd5JhiAYK9TptXbraf=jobL7Cj+p=uLitvA@mail.gmail.com' \
    --to=adlternative@gmail.com \
    --cc=avarab@gmail.com \
    --cc=bagasdotme@gmail.com \
    --cc=christian.couder@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitgitgadget@gmail.com \
    --cc=gitster@pobox.com \
    --cc=hariom18599@gmail.com \
    --cc=peff@peff.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.