Subject: Re: [PATCH v6 18/19] push: refactor refspec_append_mapped() for subsequent leak-fix

From: Junio C Hamano <[email-masked]>
Date: Mon, 06 Feb 2023 15:42:30 -0800

Ævar Arnfjörð Bjarmason <[email-masked]> writes:

> I think you're mistaken, or I'm misunderstanding you. For e.g. the 29th
> test in t4301-merge-tree-write-tree.sh where we do:
>
> 	git push read-only side1 side2 side3
>
> We'll only invoke "get_local_heads()" once, not once for each of the
> refs.

Ahh.  get_local_heads() appears inside this conditional in the
original.

	} else if (!strchr(ref, ':')) {
		if (!remote) {
			remote = remote_get(repo);
			local_refs = get_local_heads();
		}
	        refspec_append_mapped(...);
	} else
		...

So the original was using !remote as the switch to make both remote
and local_refs assigned onnly once.  The rewritten code makes them
separately "find first non-null".

OK.