From: "Glen Choo via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: Glen Choo <chooglen@google.com>
Subject: [PATCH 0/2] remote: replace static variables with struct remote_state
Date: Thu, 07 Oct 2021 19:07:13 +0000 [thread overview]
Message-ID: <pull.1103.git.git.1633633635.gitgitgadget@gmail.com> (raw)
This series aims to make the remotes subsystem work with non-the_repository,
which will allow submodule remotes to be accessed in-process, rather than
through child processes. This is accomplished by creating a struct
remote_state and adding it to struct repository.
One motivation for this is that it allows future submodule commands to run
in-process. An example is an RFC series of mine [1], where I tried to
implement "git branch --recurse-submodules" in-process but couldn't figure
out how to read the remotes of a submodule.
For the most part, this was a mechanical process of taking static variables
and putting them in a struct. As such, I think this series might benefit
from thoughtful review, especially from people with more insight into this
area. Some areas I am extra concerned about are:
* Naming, especially the renaming of variables in patch 1 and the field
names in patch 2. I don't really like the name "remote_state", but I
can't think of a better one.
* Memory leaks - I am not confident that remote_state_clear() frees all of
the memory that it should. I tried to eliminate as many leaks as I could
with "make SANITIZE=address,leak", but I'm not confident that I've caught
them all.
[1] https://lore.kernel.org/git/20210921232529.81811-1-chooglen@google.com/
Glen Choo (2):
remote: move static variables into struct
remote: add remote_state to struct repository
remote.c | 245 ++++++++++++++++++++++++++++++---------------------
remote.h | 69 +++++++++++++--
repository.c | 8 ++
repository.h | 4 +
4 files changed, 222 insertions(+), 104 deletions(-)
base-commit: 0785eb769886ae81e346df10e88bc49ffc0ac64e
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1103%2Fchooglen%2Fremote%2Fstruct-no-global-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1103/chooglen/remote/struct-no-global-v1
Pull-Request: https://github.com/git/git/pull/1103
--
gitgitgadget
next reply other threads:[~2021-10-07 19:07 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-07 19:07 Glen Choo via GitGitGadget [this message]
2021-10-07 19:07 ` [PATCH 1/2] remote: move static variables into struct Glen Choo via GitGitGadget
2021-10-07 23:36 ` Junio C Hamano
2021-10-07 19:07 ` [PATCH 2/2] remote: add remote_state to struct repository Glen Choo via GitGitGadget
2021-10-07 23:39 ` Junio C Hamano
2021-10-08 17:30 ` Glen Choo
2021-10-13 19:31 ` [PATCH v2 0/3] remote: replace static variables with struct remote_state Glen Choo
2021-10-13 19:31 ` [PATCH v2 1/3] remote: move static variables into per-repository struct Glen Choo
2021-10-13 20:21 ` Junio C Hamano
2021-10-14 17:25 ` Glen Choo
2021-10-14 18:33 ` Junio C Hamano
2021-10-13 19:31 ` [PATCH v2 2/3] remote: use remote_state parameter internally Glen Choo
2021-10-13 20:23 ` Junio C Hamano
2021-10-13 19:31 ` [PATCH v2 3/3] remote: add struct repository parameter to external functions Glen Choo
2021-10-13 20:24 ` Junio C Hamano
2021-10-13 20:11 ` [PATCH v2 0/3] remote: replace static variables with struct remote_state Junio C Hamano
2021-10-13 20:27 ` Junio C Hamano
2021-10-13 22:00 ` Glen Choo
2021-10-13 21:56 ` Glen Choo
2021-10-13 23:37 ` Junio C Hamano
2021-10-14 1:25 ` Glen Choo
2021-10-19 22:43 ` [PATCH v3 0/4] " Glen Choo
2021-10-19 22:43 ` [PATCH v3 1/4] remote: move static variables into per-repository struct Glen Choo
2021-10-19 22:43 ` [PATCH v3 2/4] remote: use remote_state parameter internally Glen Choo
2021-10-20 19:45 ` Junio C Hamano
2021-10-20 20:31 ` Junio C Hamano
2021-10-20 22:08 ` Junio C Hamano
2021-10-25 18:09 ` Glen Choo
2021-10-25 19:36 ` Glen Choo
2021-10-25 20:33 ` Junio C Hamano
2021-10-25 23:00 ` Glen Choo
2021-10-26 0:45 ` Junio C Hamano
2021-10-26 1:22 ` Junio C Hamano
2021-10-26 17:04 ` Glen Choo
2021-10-27 2:28 ` Junio C Hamano
2021-10-27 17:59 ` Glen Choo
2021-10-27 20:03 ` Junio C Hamano
2021-10-19 22:43 ` [PATCH v3 3/4] remote: remove the_repository->remote_state from static methods Glen Choo
2021-10-19 22:43 ` [PATCH v3 4/4] remote: add struct repository parameter to external functions Glen Choo
2021-10-28 18:30 ` [PATCH v4 0/6] remote: replace static variables with struct remote_state Glen Choo
2021-10-28 18:30 ` [PATCH v4 1/6] t5516: add test case for pushing remote refspecs Glen Choo
2021-10-28 20:17 ` Junio C Hamano
2021-11-15 18:42 ` Jonathan Tan
2021-11-15 20:09 ` Glen Choo
2021-10-28 18:30 ` [PATCH v4 2/6] remote: move static variables into per-repository struct Glen Choo
2021-10-28 18:30 ` [PATCH v4 3/6] remote: use remote_state parameter internally Glen Choo
2021-10-28 18:30 ` [PATCH v4 4/6] remote: remove the_repository->remote_state from static methods Glen Choo
2021-11-15 18:48 ` Jonathan Tan
2021-10-28 18:31 ` [PATCH v4 5/6] remote: die if branch is not found in repository Glen Choo
2021-11-15 18:50 ` Jonathan Tan
2021-11-15 20:06 ` Glen Choo
2021-11-16 17:45 ` Jonathan Tan
2021-10-28 18:31 ` [PATCH v4 6/6] remote: add struct repository parameter to external functions Glen Choo
2021-11-15 18:55 ` Jonathan Tan
2021-11-15 21:44 ` Glen Choo
2021-11-12 0:01 ` [PATCH v4 0/6] remote: replace static variables with struct remote_state Glen Choo
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=pull.1103.git.git.1633633635.gitgitgadget@gmail.com \
--to=gitgitgadget@gmail.com \
--cc=chooglen@google.com \
--cc=git@vger.kernel.org \
/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.