All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/8] [GSOC] ref-filter: eliminate dummy ref_format to make the code cleaner
@ 2021-08-25  9:08 ZheNing Hu via GitGitGadget
  2021-08-25  9:08 ` [PATCH 1/8] [GSOC] ref-filter: use list api to replace ref_sorting linked list ZheNing Hu via GitGitGadget
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: ZheNing Hu via GitGitGadget @ 2021-08-25  9:08 UTC (permalink / raw)
  To: git
  Cc: Junio C Hamano, Christian Couder, Hariom Verma, Bagas Sanjaya,
	Jeff King, Ævar Arnfjörð Bjarmason, Eric Sunshine,
	Philip Oakley, ZheNing Hu

Note that there are these disadvantages in the ref-filter code:

 1. Scattered state variables: need_tagged, need_symref are placed globally,
    need_color_reset_at_eol is placed inside ref_format.
 2. parse_sorting_atom() uses a dummy ref_format, which causes us to need a
    lot of extra logic to check in verify_ref_format(), because dummy
    ref_format records some state, while truly ref_format does not.
 3. struct ref_sorting uses a very strange singly linked list
    implementation, and there is a memory leak with it.

Therefore, the following modifications are made to make the logic of
ref-filter cleaner:

 1. Let ref_sorting use list api.
 2. Eliminate dummy ref_format.
 3. Add ref_format to ref_array_item.
 4. Move the check in verify_ref_format() to atom parsing function.
 5. Add deref member to used_atom.
 6. Move need_symref, need_tagged to ref_format.

ZheNing Hu (8):
  [GSOC] ref-filter: use list api to replace ref_sorting linked list
  [GSOC] ref-filter: let parse_sorting_atom() use real ref_format
  [GSOC] ref-filter: add ref_format to ref_array_item
  [GSOC] ref-filter: clean up verify_ref_format()
  [GSOC] ref-filter: introduce symref_atom_parser()
  [GSOC] ref-filter: remove grab_oid() function
  [GSOC] ref-filter: add deref member to struct used_atom
  [GSOC] ref-filter: move need_symref, need_tagged into ref_format

 builtin/branch.c       |  26 +++--
 builtin/for-each-ref.c |  20 ++--
 builtin/ls-remote.c    |  18 ++--
 builtin/tag.c          |  24 +++--
 ref-filter.c           | 236 +++++++++++++++++++++--------------------
 ref-filter.h           |  20 ++--
 6 files changed, 185 insertions(+), 159 deletions(-)


base-commit: c4203212e360b25a1c69467b5a8437d45a373cac
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1025%2Fadlternative%2Fref-filter-code-clean-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1025/adlternative/ref-filter-code-clean-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/1025
-- 
gitgitgadget

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2021-08-25  9:09 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-08-25  9:08 [PATCH 0/8] [GSOC] ref-filter: eliminate dummy ref_format to make the code cleaner ZheNing Hu via GitGitGadget
2021-08-25  9:08 ` [PATCH 1/8] [GSOC] ref-filter: use list api to replace ref_sorting linked list ZheNing Hu via GitGitGadget
2021-08-25  9:08 ` [PATCH 2/8] [GSOC] ref-filter: let parse_sorting_atom() use real ref_format ZheNing Hu via GitGitGadget
2021-08-25  9:08 ` [PATCH 3/8] [GSOC] ref-filter: add ref_format to ref_array_item ZheNing Hu via GitGitGadget
2021-08-25  9:08 ` [PATCH 4/8] [GSOC] ref-filter: clean up verify_ref_format() ZheNing Hu via GitGitGadget
2021-08-25  9:08 ` [PATCH 5/8] [GSOC] ref-filter: introduce symref_atom_parser() ZheNing Hu via GitGitGadget
2021-08-25  9:08 ` [PATCH 6/8] [GSOC] ref-filter: remove grab_oid() function ZheNing Hu via GitGitGadget
2021-08-25  9:08 ` [PATCH 7/8] [GSOC] ref-filter: add deref member to struct used_atom ZheNing Hu via GitGitGadget
2021-08-25  9:08 ` [PATCH 8/8] [GSOC] ref-filter: move need_symref, need_tagged into ref_format ZheNing Hu via GitGitGadget

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.