All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Phillip Wood <phillip.wood123@gmail.com>
Cc: git@vger.kernel.org, 重田一聖 <kazumasa.shigeta@kanamei.com>
Subject: Re: [PATCH v4 5/7] stash create: rework temporary index creation
Date: Thu, 05 Nov 2026 13:55:54 -0800	[thread overview]
Message-ID: <xmqqmrrnq6xh.fsf@gitster.g> (raw)
In-Reply-To: <b62d3d080a8ff0d9e14741a886aa45d70019bd64.1792767795.git.phillip.wood@dunelm.org.uk> (Phillip Wood's message of "Fri, 23 Oct 2026 16:03:33 +0100")

Phillip Wood <phillip.wood123@gmail.com> writes:

> Use create_index_from_tree() instead of reset_tree() so that we
> can create temporary index file without overwriting the in-memory
> index or relying on set_alternate_index_output().

This is very nice simplification.

> As create_index_from_tree() does not
> modify the in-memory index it is clearly safe to remove the call to
> repo_read_index_preload() which saves one lstat() call per changed
> path.

;-)

> It would probably be safe to remove that call without moving away
> from reset_tree() but it is much easier to reason about now that the
> in-memory index is not modified when we create the temporary index file.

Indeed.

> @@ -1458,22 +1458,15 @@ static int stash_working_tree(struct stash_info *info, const struct pathspec *ps
>  	repo_init_revisions(the_repository, &rev, NULL);
>  	copy_pathspec(&rev.prune_data, ps);
>  
> -	set_alternate_index_output(stash_index_path.buf);
> -	if (reset_tree(&info->i_tree, 0, 0)) {
> +	if (create_index_from_tree(&info->i_tree, stash_index_path.buf, false)) {
>  		ret = -1;
>  		goto done;
>  	}
> -	set_alternate_index_output(NULL);
>  
>  	rev.diffopt.output_format = DIFF_FORMAT_CALLBACK;
>  	rev.diffopt.format_callback = add_diff_to_buf;
>  	rev.diffopt.format_callback_data = &diff_output;
>  
> -	if (repo_read_index_preload(the_repository, &rev.diffopt.pathspec, 0) < 0) {
> -		ret = -1;
> -		goto done;
> -	}
> -

Yup, removal of these is indeed very nice.

>  	add_pending_object(&rev, parse_object(the_repository, &info->b_commit),
>  			   "");
>  	run_diff_index(&rev, 0);

  reply	other threads:[~2026-11-05 21:55 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-05 16:35 [PATCH 0/2] stash: stop checking for changes twice Phillip Wood
2026-10-05 16:35 ` [PATCH 1/2] stash create: remove duplicate changes detection Phillip Wood
2026-10-06 12:44   ` Junio C Hamano
2026-10-07 13:49     ` Phillip Wood
2026-10-05 16:35 ` [PATCH 2/2] stash push: " Phillip Wood
2026-10-06 14:27   ` Junio C Hamano
2026-10-07 13:46     ` Phillip Wood
2026-10-07 17:15       ` Junio C Hamano
2026-10-08 13:35         ` Phillip Wood
2026-10-14 15:40 ` [PATCH v2 0/7] stash creation: avoid unecessary index loads and refreshes Phillip Wood
2026-10-14 15:40   ` [PATCH v2 1/7] stash: use an enum for create status Phillip Wood
2026-10-14 15:40   ` [PATCH v2 2/7] stash create: remove duplicate changes detection Phillip Wood
2026-10-14 15:40   ` [PATCH v2 3/7] stash push: " Phillip Wood
2026-10-14 15:40   ` [PATCH v2 4/7] stash push: avoid duplicate calls to preload_index() Phillip Wood
2026-10-14 18:09     ` Junio C Hamano
2026-10-14 15:40   ` [PATCH v2 5/7] stash create: rework temporary index creation Phillip Wood
2026-10-14 18:16     ` Junio C Hamano
2026-10-20 14:54       ` Phillip Wood
2026-10-14 15:40   ` [PATCH v2 6/7] stash create: remove unnecessary index load and refresh Phillip Wood
2026-10-14 18:21     ` Junio C Hamano
2026-10-14 15:40   ` [PATCH v2 7/7] stash: simplify reset_tree() function signature Phillip Wood
2026-10-20 15:20 ` [PATCH v3 0/7] stash creation: avoid unecessary index loads and refreshes Phillip Wood
2026-10-20 15:20   ` [PATCH v3 1/7] stash: use an enum for create status Phillip Wood
2026-10-21  6:07     ` Junio C Hamano
2026-10-22 15:57       ` Phillip Wood
2026-10-22 17:01         ` Junio C Hamano
2026-10-22 18:33           ` Phillip Wood
2026-10-20 15:20   ` [PATCH v3 2/7] stash create: remove duplicate changes detection Phillip Wood
2026-10-20 15:20   ` [PATCH v3 3/7] stash push: " Phillip Wood
2026-10-20 15:20   ` [PATCH v3 4/7] stash push: avoid duplicate calls to preload_index() Phillip Wood
2026-10-20 15:20   ` [PATCH v3 5/7] stash create: rework temporary index creation Phillip Wood
2026-10-20 22:07     ` Junio C Hamano
2026-10-20 15:20   ` [PATCH v3 6/7] stash create: remove unnecessary index load and refresh Phillip Wood
2026-10-20 15:20   ` [PATCH v3 7/7] stash: simplify reset_tree() function signature Phillip Wood
2026-10-21  0:07   ` [PATCH v3 0/7] stash creation: avoid unecessary index loads and refreshes Junio C Hamano
2026-10-23 15:03 ` [PATCH v4 " Phillip Wood
2026-10-23 15:03   ` [PATCH v4 1/7] stash: use an enum for create status Phillip Wood
2026-10-23 15:03   ` [PATCH v4 2/7] stash create: remove duplicate changes detection Phillip Wood
2026-10-23 15:03   ` [PATCH v4 3/7] stash push: " Phillip Wood
2026-10-23 15:03   ` [PATCH v4 4/7] stash push: avoid duplicate calls to preload_index() Phillip Wood
2026-10-23 15:03   ` [PATCH v4 5/7] stash create: rework temporary index creation Phillip Wood
2026-11-05 21:55     ` Junio C Hamano [this message]
2026-10-23 15:03   ` [PATCH v4 6/7] stash create: remove unnecessary index load and refresh Phillip Wood
2026-11-06  1:59     ` Junio C Hamano
2026-10-23 15:03   ` [PATCH v4 7/7] stash: simplify reset_tree() function signature Phillip Wood
2026-11-06  1:59     ` Junio C Hamano
2026-11-05 21:52   ` [PATCH v4 0/7] stash creation: avoid unecessary index loads and refreshes Junio C Hamano

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=xmqqmrrnq6xh.fsf@gitster.g \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    --cc=kazumasa.shigeta@kanamei.com \
    --cc=phillip.wood123@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.