All of lore.kernel.org
 help / color / mirror / Atom feed
From: Phillip Wood <phillip.wood123@gmail.com>
To: Shreyansh Paliwal <shreyanshpaliwalcmsmn@gmail.com>, git@vger.kernel.org
Cc: gitster@pobox.com, karthik.188@gmail.com
Subject: Re: [PATCH v4 0/3] wt-status: reduce reliance on global state
Date: Wed, 18 Feb 2026 16:13:07 +0000	[thread overview]
Message-ID: <df357921-dd2c-4bc8-aaaf-1ea5259b22b1@gmail.com> (raw)
In-Reply-To: <20260217173037.63438-1-shreyanshpaliwalcmsmn@gmail.com>

On 17/02/2026 17:29, Shreyansh Paliwal wrote:
> In wt-status.c code still relies on some global variables, including
> the_repository and the_hash_algo, even in cases where a repository
> instance is already available via struct wt_status or struct repository.
> 
> In patch 1/3, update function parameters and callers to pass struct
> repository where no local repository access was available.

This breaks the build when running "make DEVELOPER=1"

wt-status.c: In function ‘count_stash_entries’:
wt-status.c:1011:51: error: unused parameter ‘r’ [-Werror=unused-parameter]
  1011 | static int count_stash_entries(struct repository *r)
       |                                ~~~~~~~~~~~~~~~~~~~^
wt-status.c: In function ‘read_line_from_git_path’:
wt-status.c:1314:57: error: unused parameter ‘r’ [-Werror=unused-parameter]
  1314 | static char *read_line_from_git_path(struct repository *r, 
const char *filename)
       |                                      ~~~~~~~~~~~~~~~~~~~^
wt-status.c: In function ‘abbrev_oid_in_line’:
wt-status.c:1377:51: error: unused parameter ‘r’ [-Werror=unused-parameter]
  1377 | static void abbrev_oid_in_line(struct repository *r, struct 
strbuf *line)
       |                                ~~~~~~~~~~~~~~~~~~~^

It would be better to use the new argument to replace "the_repository" 
in this patch. There aren't that many so the patch is still a manageable 
size.

> In patch 2/3, replace direct uses of the_repository with repository
> instances already available in local structs.
> 
> In patch 3/3, replace remaining uses of the global the_hash_algo with the
> hash algorithm stored in the respective repository instance.

These both look good, though I think the commit message for the second 
patch could be reflowed to give a more consistent line length.

Thanks

Phillip

> These changes remove uses of the_repository and the_hash_algo from
> wt-status.c and reduce its dependence on global state.
> 
> The 'USE_THE_REPOSITORY_VARIABLE' macro cannot yet be removed, since these
> patches only eliminate some uses of the_repository and the_hash_algo,
> while some global variables are still referenced.
> 
> In particular wt-status.c still relies on the following globals,
> 
> * the_repository, this is still used in functions like worktree_git_path() and
> wt_status_check_bisect/rebase() which are dependant on the worktree API and they
> are being handled in a seperate patch series[1].
> 
> * core_apply_sparse_checkout, this is already being addressed in an
> ongoing patch series [2].
> 
> * comment_line_str and DEFAULT_ABBREV, these both still are used in
> wt-status.c but they dont have any equivalent local instances.
> 
> [1]- https://lore.kernel.org/git/20260213120529.15475-1-shreyanshpaliwalcmsmn@gmail.com/T/#mf664ad751faaf2eaca138302b1cc9d3856c9fec3
> [2]- https://lore.kernel.org/git/5e56e1cc4172cfff9e917a068184e102aa70bf1d.1769256839.git.belkid98@gmail.com/t/#u
> 
> Shreyansh Paliwal (3):
>    wt-status: pass struct repository through function parameters
>    wt-status: replace uses of the_repository with local repository
>      instances
>    wt-status: use hash_algo from local repository instead of global
>      the_hash_algo
> 
>   wt-status.c | 62 ++++++++++++++++++++++++++---------------------------
>   1 file changed, 31 insertions(+), 31 deletions(-)
> 
> ---
> Changes in v4:
>   - removed the changes regarding worktree_git_path() and
>      wt_status_check_bisect/rebase() as they are better handled seperately.
> 
> Range-diff against v3:
> 1:  960216e45c ! 1:  a3683a5e17 wt-status: pass struct repository through function parameters
>      @@ Commit message
>           do not have access to a local repository instance and rely on the_repository.
> 
>           Add a struct repository *r parameter to these functions, and pass the local
>      -    repository through the callers.
>      -
>      -    get_branch(), wt_status_check_rebase() and wt_status_check_bisect() already
>      -    receive a struct worktree *, which can provide access to the repository.
>      -    However, some callers pass NULL as the worktree like in wt_status_get_state(),
>      -    which would make using wt->repo unsafe and lead to segfault issues.
>      -    Add an explicit struct repository * parameter to these functions as well,
>      -    and pass the repository through the callers.
>      -
>      -    Both wt_status_check_rebase() and  wt_status_check_bisect() are called from
>      -    branch.c and worktree.c,
>      -
>      -    * In branch.c, wt is always non-NULL as the functions are called within an
>      -    interation over worktrees in prepare_checked_out_branches().
>      -    * In worktree.c the functions are called from is_worktree_being_rebased() and
>      -    is_worktree_being_bisected() respectively which are further called from
>      -    builtin/branch.c in reject_rebase_or_bisect_branch() which has a non-NULL
>      -    worktree as it is called inside an iteration over worktrees as well.
>      +    repository through the callers where already they can access a local repository
>      +    instance either directly by struct repository *r or
>      +    by struct wt_state *s (s->repo).
> 
>           Signed-off-by: Shreyansh Paliwal <shreyanshpaliwalcmsmn@gmail.com>
> 
>      - ## branch.c ##
>      -@@ branch.c: static void prepare_checked_out_branches(void)
>      - 			free(old);
>      - 		}
>      -
>      --		if (wt_status_check_rebase(wt, &state) &&
>      -+		if (wt_status_check_rebase(wt->repo, wt, &state) &&
>      - 		    (state.rebase_in_progress || state.rebase_interactive_in_progress) &&
>      - 		    state.branch) {
>      - 			struct strbuf ref = STRBUF_INIT;
>      -@@ branch.c: static void prepare_checked_out_branches(void)
>      - 		}
>      - 		wt_status_state_free_buffers(&state);
>      -
>      --		if (wt_status_check_bisect(wt, &state) &&
>      -+		if (wt_status_check_bisect(wt->repo, wt, &state) &&
>      - 		    state.bisecting_from) {
>      - 			struct strbuf ref = STRBUF_INIT;
>      - 			strbuf_addf(&ref, "refs/heads/%s", state.bisecting_from);
>      -
>      - ## worktree.c ##
>      -@@ worktree.c: int is_worktree_being_rebased(const struct worktree *wt,
>      - 	int found_rebase;
>      -
>      - 	memset(&state, 0, sizeof(state));
>      --	found_rebase = wt_status_check_rebase(wt, &state) &&
>      -+	found_rebase = wt_status_check_rebase(wt->repo, wt, &state) &&
>      - 		       (state.rebase_in_progress ||
>      - 			state.rebase_interactive_in_progress) &&
>      - 		       state.branch &&
>      -@@ worktree.c: int is_worktree_being_bisected(const struct worktree *wt,
>      - 	int found_bisect;
>      -
>      - 	memset(&state, 0, sizeof(state));
>      --	found_bisect = wt_status_check_bisect(wt, &state) &&
>      -+	found_bisect = wt_status_check_bisect(wt->repo, wt, &state) &&
>      - 		       state.bisecting_from &&
>      - 		       skip_prefix(target, "refs/heads/", &target) &&
>      - 		       !strcmp(state.bisecting_from, target);
>      -
>        ## wt-status.c ##
>       @@ wt-status.c: static int stash_count_refs(const char *refname UNUSED,
>        	return 0;
>      @@ wt-status.c: static void show_am_in_progress(struct wt_status *s,
>        }
> 
>       -static char *read_line_from_git_path(const char *filename)
>      -+static char *read_line_from_git_path(struct repository *r, char *filename)
>      ++static char *read_line_from_git_path(struct repository *r, const char *filename)
>        {
>        	struct strbuf buf = STRBUF_INIT;
>        	FILE *fp = fopen_or_warn(repo_git_path_append(the_repository, &buf,
>      @@ wt-status.c: static void abbrev_oid_in_line(struct strbuf *line)
>        }
> 
>       -static int read_rebase_todolist(const char *fname, struct string_list *lines)
>      -+static int read_rebase_todolist(struct repository *r, char *fname, struct string_list *lines)
>      ++static int read_rebase_todolist(struct repository *r, const char *fname, struct string_list *lines)
>        {
>        	struct strbuf buf = STRBUF_INIT;
>        	FILE *f = fopen(repo_git_path_append(the_repository, &buf, "%s", fname), "r");
>      @@ wt-status.c: static void show_rebase_information(struct wt_status *s,
>        					 &yet_to_do))
>        			status_printf_ln(s, color,
>        				_("git-rebase-todo is missing."));
>      -@@ wt-status.c: static void show_sparse_checkout_in_use(struct wt_status *s,
>      - /*
>      -  * Extract branch information from rebase/bisect
>      -  */
>      --static char *get_branch(const struct worktree *wt, const char *path)
>      -+static char *get_branch(struct repository *r, struct worktree *wt, const char *path)
>      - {
>      - 	struct strbuf sb = STRBUF_INIT;
>      - 	struct object_id oid;
>      -@@ wt-status.c: static void wt_status_get_detached_from(struct repository *r,
>      - 	strbuf_release(&cb.buf);
>      - }
>      -
>      --int wt_status_check_rebase(const struct worktree *wt,
>      --			   struct wt_status_state *state)
>      -+int wt_status_check_rebase(struct repository *r,
>      -+	 			const struct worktree *wt,
>      -+			    struct wt_status_state *state)
>      - {
>      - 	struct stat st;
>      -
>      -@@ wt-status.c: int wt_status_check_rebase(const struct worktree *wt,
>      - 				state->am_empty_patch = 1;
>      - 		} else {
>      - 			state->rebase_in_progress = 1;
>      --			state->branch = get_branch(wt, "rebase-apply/head-name");
>      --			state->onto = get_branch(wt, "rebase-apply/onto");
>      -+			state->branch = get_branch(r, wt, "rebase-apply/head-name");
>      -+			state->onto = get_branch(r, wt, "rebase-apply/onto");
>      - 		}
>      - 	} else if (!stat(worktree_git_path(the_repository, wt, "rebase-merge"), &st)) {
>      - 		if (!stat(worktree_git_path(the_repository, wt, "rebase-merge/interactive"), &st))
>      - 			state->rebase_interactive_in_progress = 1;
>      - 		else
>      - 			state->rebase_in_progress = 1;
>      --		state->branch = get_branch(wt, "rebase-merge/head-name");
>      --		state->onto = get_branch(wt, "rebase-merge/onto");
>      -+		state->branch = get_branch(r, wt, "rebase-merge/head-name");
>      -+		state->onto = get_branch(r, wt, "rebase-merge/onto");
>      - 	} else
>      - 		return 0;
>      - 	return 1;
>      - }
>      -
>      --int wt_status_check_bisect(const struct worktree *wt,
>      -+int wt_status_check_bisect(struct repository *r,
>      -+			   struct worktree *wt,
>      - 			   struct wt_status_state *state)
>      - {
>      - 	struct stat st;
>      -
>      - 	if (!stat(worktree_git_path(the_repository, wt, "BISECT_LOG"), &st)) {
>      - 		state->bisect_in_progress = 1;
>      --		state->bisecting_from = get_branch(wt, "BISECT_START");
>      -+		state->bisecting_from = get_branch(r, wt, "BISECT_START");
>      - 		return 1;
>      - 	}
>      - 	return 0;
>      -@@ wt-status.c: void wt_status_get_state(struct repository *r,
>      - 	enum replay_action action;
>      -
>      - 	if (!stat(git_path_merge_head(r), &st)) {
>      --		wt_status_check_rebase(NULL, state);
>      -+		wt_status_check_rebase(r, NULL, state);
>      - 		state->merge_in_progress = 1;
>      --	} else if (wt_status_check_rebase(NULL, state)) {
>      -+	} else if (wt_status_check_rebase(r, NULL, state)) {
>      - 		;		/* all set */
>      - 	} else if (refs_ref_exists(get_main_ref_store(r), "CHERRY_PICK_HEAD") &&
>      - 		   !repo_get_oid(r, "CHERRY_PICK_HEAD", &oid)) {
>      - 		state->cherry_pick_in_progress = 1;
>      - 		oidcpy(&state->cherry_pick_head_oid, &oid);
>      - 	}
>      --	wt_status_check_bisect(NULL, state);
>      -+	wt_status_check_bisect(r, NULL, state);
>      - 	if (refs_ref_exists(get_main_ref_store(r), "REVERT_HEAD") &&
>      - 	    !repo_get_oid(r, "REVERT_HEAD", &oid)) {
>      - 		state->revert_in_progress = 1;
>       @@ wt-status.c: static void wt_porcelain_v2_print_tracking(struct wt_status *s)
>         */
>        static void wt_porcelain_v2_print_stash(struct wt_status *s)
>      @@ wt-status.c: static void wt_porcelain_v2_print_tracking(struct wt_status *s)
>        	char eol = s->null_termination ? '\0' : '\n';
> 
>        	if (stash_count > 0)
>      -
>      - ## wt-status.h ##
>      -@@ wt-status.h: void wt_status_state_free_buffers(struct wt_status_state *s);
>      - void wt_status_get_state(struct repository *repo,
>      - 			 struct wt_status_state *state,
>      - 			 int get_detached_from);
>      --int wt_status_check_rebase(const struct worktree *wt,
>      -+int wt_status_check_rebase(struct repository *r,
>      -+			   struct worktree *wt,
>      - 			   struct wt_status_state *state);
>      --int wt_status_check_bisect(const struct worktree *wt,
>      -+int wt_status_check_bisect(struct repository *r,
>      -+			   struct worktree *wt,
>      - 			   struct wt_status_state *state);
>      -
>      - __attribute__((format (printf, 3, 4)))
> 2:  906e682cd7 ! 2:  f3b4c3e972 wt-status: replace uses of the_repository with local repository instances
>      @@ Commit message
>           struct repository *r.
> 
>           Replace these uses of the_repository with the repository available
>      -    in the local context (eg. s->repo or r).
>      +    in the local context (i.e. s->repo or r).
> 
>           The replacements of all the_repository with s->repo are mostly
>           to cases where a repository instance is already available via
>      @@ wt-status.c: static void wt_longstatus_print_verbose(struct wt_status *s)
> 
>        	rev.diffopt.output_format |= DIFF_FORMAT_PATCH;
>       @@ wt-status.c: static void show_am_in_progress(struct wt_status *s,
>      - static char *read_line_from_git_path(struct repository *r, char *filename)
>      + static char *read_line_from_git_path(struct repository *r, const char *filename)
>        {
>        	struct strbuf buf = STRBUF_INIT;
>       -	FILE *fp = fopen_or_warn(repo_git_path_append(the_repository, &buf,
>      @@ wt-status.c: static void abbrev_oid_in_line(struct repository *r, struct strbuf
>        		strbuf_addf(line, "%s ", split.items[0].string);
>        		strbuf_add_unique_abbrev(line, &oid, DEFAULT_ABBREV);
>       @@ wt-status.c: static void abbrev_oid_in_line(struct repository *r, struct strbuf *line)
>      - static int read_rebase_todolist(struct repository *r, char *fname, struct string_list *lines)
>      + static int read_rebase_todolist(struct repository *r, const char *fname, struct string_list *lines)
>        {
>        	struct strbuf buf = STRBUF_INIT;
>       -	FILE *f = fopen(repo_git_path_append(the_repository, &buf, "%s", fname), "r");
>      @@ wt-status.c: static void abbrev_oid_in_line(struct repository *r, struct strbuf
>        	int ret;
> 
>        	if (!f) {
>      -@@ wt-status.c: static int read_rebase_todolist(struct repository *r, char *fname, struct string
>      +@@ wt-status.c: static int read_rebase_todolist(struct repository *r, const char *fname, struct
>        			goto out;
>        		}
>        		die_errno("Could not open file %s for reading",
>      @@ wt-status.c: static void show_revert_in_progress(struct wt_status *s,
>        						DEFAULT_ABBREV));
>        	if (s->hints) {
>        		if (has_unmerged(s))
>      -@@ wt-status.c: static char *get_branch(struct repository *r, struct worktree *wt, const char *p
>      - 	struct object_id oid;
>      - 	const char *branch_name;
>      -
>      --	if (strbuf_read_file(&sb, worktree_git_path(the_repository, wt, "%s", path), 0) <= 0)
>      -+	if (strbuf_read_file(&sb, worktree_git_path(r, wt, "%s", path), 0) <= 0)
>      - 		goto got_nothing;
>      -
>      - 	while (sb.len && sb.buf[sb.len - 1] == '\n')
>       @@ wt-status.c: static void wt_status_get_detached_from(struct repository *r,
>        	char *ref = NULL;
> 
>      @@ wt-status.c: static void wt_status_get_detached_from(struct repository *r,
>        		strbuf_release(&cb.buf);
>        		return;
>        	}
>      -@@ wt-status.c: int wt_status_check_rebase(struct repository *r,
>      - {
>      - 	struct stat st;
>      -
>      --	if (!stat(worktree_git_path(the_repository, wt, "rebase-apply"), &st)) {
>      --		if (!stat(worktree_git_path(the_repository, wt, "rebase-apply/applying"), &st)) {
>      -+	if (!stat(worktree_git_path(r, wt, "rebase-apply"), &st)) {
>      -+		if (!stat(worktree_git_path(r, wt, "rebase-apply/applying"), &st)) {
>      - 			state->am_in_progress = 1;
>      --			if (!stat(worktree_git_path(the_repository, wt, "rebase-apply/patch"), &st) && !st.st_size)
>      -+			if (!stat(worktree_git_path(r, wt, "rebase-apply/patch"), &st) && !st.st_size)
>      - 				state->am_empty_patch = 1;
>      - 		} else {
>      - 			state->rebase_in_progress = 1;
>      - 			state->branch = get_branch(r, wt, "rebase-apply/head-name");
>      - 			state->onto = get_branch(r, wt, "rebase-apply/onto");
>      - 		}
>      --	} else if (!stat(worktree_git_path(the_repository, wt, "rebase-merge"), &st)) {
>      --		if (!stat(worktree_git_path(the_repository, wt, "rebase-merge/interactive"), &st))
>      -+	} else if (!stat(worktree_git_path(r, wt, "rebase-merge"), &st)) {
>      -+		if (!stat(worktree_git_path(r, wt, "rebase-merge/interactive"), &st))
>      - 			state->rebase_interactive_in_progress = 1;
>      - 		else
>      - 			state->rebase_in_progress = 1;
>      -@@ wt-status.c: int wt_status_check_bisect(struct repository *r,
>      - {
>      - 	struct stat st;
>      -
>      --	if (!stat(worktree_git_path(the_repository, wt, "BISECT_LOG"), &st)) {
>      -+	if (!stat(worktree_git_path(r, wt, "BISECT_LOG"), &st)) {
>      - 		state->bisect_in_progress = 1;
>      - 		state->bisecting_from = get_branch(r, wt, "BISECT_START");
>      - 		return 1;
>       @@ wt-status.c: static void wt_shortstatus_print_tracking(struct wt_status *s)
>        		upstream_is_gone = 1;
>        	}
> 3:  9c0a1d82ad = 3:  7efaf6b3fb wt-status: use hash_algo from local repository instead of global the_hash_algo
> --
> 2.53.0
> 
> 


  parent reply	other threads:[~2026-02-18 16:13 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-01-31 18:57 [PATCH 0/3] wt-status: reduce reliance on global state Shreyansh Paliwal
2026-01-31 18:57 ` [PATCH 1/3] wt-status: replace uses of the_repository with local repository instances Shreyansh Paliwal
2026-02-02 10:02   ` Karthik Nayak
2026-02-02 18:42     ` Junio C Hamano
2026-02-02 18:57     ` Shreyansh Paliwal
2026-02-02 22:41       ` Junio C Hamano
2026-02-02 23:03         ` Junio C Hamano
2026-02-03  9:53           ` Shreyansh Paliwal
2026-02-03 11:06             ` Phillip Wood
2026-02-03 15:20               ` Shreyansh Paliwal
2026-02-03 10:58       ` Phillip Wood
2026-02-03 15:15         ` Shreyansh Paliwal
2026-01-31 18:57 ` [PATCH 2/3] wt-status: pass struct repository and wt_status through function parameters Shreyansh Paliwal
2026-01-31 18:57 ` [PATCH 3/3] wt-status: use hash_algo from local repository instead of global the_hash_algo Shreyansh Paliwal
2026-02-02 10:03   ` Karthik Nayak
2026-02-02 19:03     ` Shreyansh Paliwal
2026-02-04 10:18       ` Karthik Nayak
2026-02-04 11:22         ` Shreyansh Paliwal
2026-02-05 10:13 ` [PATCH V2 0/3] wt-status: reduce reliance on global state Shreyansh Paliwal
2026-02-05 10:13   ` [PATCH V2 1/3] wt-status: replace uses of the_repository with local repository instances Shreyansh Paliwal
2026-02-05 10:59     ` Karthik Nayak
2026-02-05 11:11       ` Karthik Nayak
2026-02-05 12:18         ` Shreyansh Paliwal
2026-02-05 16:08           ` Phillip Wood
2026-02-05 17:41             ` Shreyansh Paliwal
2026-02-05 10:13   ` [PATCH V2 2/3] wt-status: pass struct repository and wt_status through function parameters Shreyansh Paliwal
2026-02-05 11:09     ` Karthik Nayak
2026-02-05 12:04       ` Shreyansh Paliwal
2026-02-06  9:24         ` Karthik Nayak
2026-02-06  9:32           ` Shreyansh Paliwal
2026-02-06 12:57             ` Shreyansh Paliwal
2026-02-06 14:54               ` Phillip Wood
2026-02-06 17:06                 ` Shreyansh Paliwal
2026-02-05 15:58       ` Phillip Wood
2026-02-05 10:13   ` [PATCH V2 3/3] wt-status: use hash_algo from local repository instead of global the_hash_algo Shreyansh Paliwal
2026-02-05 10:27   ` [PATCH V2 0/3] wt-status: reduce reliance on global state Shreyansh Paliwal
2026-02-05 15:53     ` Phillip Wood
2026-02-05 17:39       ` Shreyansh Paliwal
2026-02-05 18:02         ` Kristoffer Haugsbakk
2026-02-05 18:18           ` Shreyansh Paliwal
2026-02-07 10:00   ` [PATCH v3 " Shreyansh Paliwal
2026-02-07 10:00     ` [PATCH v3 1/3] wt-status: pass struct repository through function parameters Shreyansh Paliwal
2026-02-08  1:14       ` Junio C Hamano
2026-02-08  4:55         ` [PATCH V2 2/3] wt-status: pass struct repository and wt_status " Shreyansh Paliwal
2026-02-09  8:36         ` [PATCH v3 1/3] wt-status: pass struct repository " Karthik Nayak
2026-02-08  1:21       ` Junio C Hamano
2026-02-08  4:44         ` [PATCH V2 2/3] wt-status: pass struct repository and wt_status " Shreyansh Paliwal
2026-02-08  6:08           ` Junio C Hamano
2026-02-08 15:25             ` Shreyansh Paliwal
2026-02-09  9:02               ` Karthik Nayak
2026-02-09 13:43                 ` Shreyansh Paliwal
2026-02-09 16:13                 ` Junio C Hamano
2026-02-10  9:50                   ` Karthik Nayak
2026-02-07 10:00     ` [PATCH v3 2/3] wt-status: replace uses of the_repository with local repository instances Shreyansh Paliwal
2026-02-07 10:00     ` [PATCH v3 3/3] wt-status: use hash_algo from local repository instead of global the_hash_algo Shreyansh Paliwal
2026-02-17 17:29 ` [PATCH v4 0/3] wt-status: reduce reliance on global state Shreyansh Paliwal
2026-02-17 17:29   ` [PATCH v4 1/3] wt-status: pass struct repository through function parameters Shreyansh Paliwal
2026-02-17 17:29   ` [PATCH v4 2/3] wt-status: replace uses of the_repository with local repository instances Shreyansh Paliwal
2026-02-17 17:29   ` [PATCH v4 3/3] wt-status: use hash_algo from local repository instead of global the_hash_algo Shreyansh Paliwal
2026-02-18 16:13   ` Phillip Wood [this message]
2026-02-18 16:48     ` [PATCH v4 0/3] wt-status: reduce reliance on global state Shreyansh Paliwal
2026-02-18 17:53 ` [PATCH v5 " Shreyansh Paliwal
2026-02-18 17:53   ` [PATCH v5 1/3] wt-status: pass struct repository through function parameters Shreyansh Paliwal
2026-02-18 17:53   ` [PATCH v5 2/3] wt-status: replace uses of the_repository with local repository instances Shreyansh Paliwal
2026-02-18 17:53   ` [PATCH v5 3/3] wt-status: use hash_algo from local repository instead of global the_hash_algo Shreyansh Paliwal
2026-03-06 22:31   ` [PATCH v5 0/3] wt-status: reduce reliance on global state Junio C Hamano
2026-03-09 10:32     ` Karthik Nayak
2026-03-09 18:30       ` Junio C Hamano
2026-03-09 10:35     ` Phillip Wood
  -- strict thread matches above, loose matches on Subject: below --
2026-02-18  0:50 What's cooking in git.git (Feb 2026, #06) Junio C Hamano
2026-02-18 18:31 ` [PATCH v4 0/3] wt-status: reduce reliance on global state Shreyansh Paliwal

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=df357921-dd2c-4bc8-aaaf-1ea5259b22b1@gmail.com \
    --to=phillip.wood123@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=karthik.188@gmail.com \
    --cc=phillip.wood@dunelm.org.uk \
    --cc=shreyanshpaliwalcmsmn@gmail.com \
    /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.