threads / patch / 44455

patchfetch: do not redundantly calculate tag refmap

Subject: [PATCH] fetch: do not redundantly calculate tag refmap

## tl;dr

2 messages between Nov 11, 2016 and Nov 11, 2016. Diffs are folded; open one to read it.

replies: 1people: 2as markdown or json

Jonathan Tan· Nov 11, 2016, 00:13 UTC · lore

builtin/fetch.c redundantly calculates refmaps for tags twice. Remove the first calculation.

This is only a code simplification and slight performance improvement - the result is unchanged, as the redundant refmaps are subsequently removed by the invocation to "ref_remove_duplicates" anyway.

This was introduced in commit c5a84e9 ("fetch --tags: fetch tags *in addition to* other stuff", 2013-10-29) when modifying the effect of the --tags parameter to "git fetch". The refmap-for-tag calculation was copied instead of moved.

Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
---
(I noticed this when working on something in this file.)
 builtin/fetch.c | 3 ---
 1 file changed, 3 deletions(-)
Show changes to builtin/fetch.c +0 −3
diff --git a/builtin/fetch.c b/builtin/fetch.c
index b6a5597..1d77e58 100644
--- a/builtin/fetch.c
+++ b/builtin/fetch.c
@@ -359,9 +359,6 @@ static struct ref *get_ref_map(struct transport *transport,
 
 		for (i = 0; i < fetch_refspec_nr; i++)
 			get_fetch_map(ref_map, &fetch_refspec[i], &oref_tail, 1);
-
-		if (tags == TAGS_SET)
-			get_fetch_map(remote_refs, tag_refspec, &tail, 0);
 	} else if (refmap_array) {
 		die("--refmap option is only meaningful with command-line refspec(s).");
 	} else {
-- 
2.8.0.rc3.226.g39d4020
Jeff King· Nov 11, 2016, 02:09 UTC · re: Jonathan Tan · lore

Re: [PATCH] fetch: do not redundantly calculate tag refmap

On Thu, Nov 10, 2016 at 04:13:28PM -0800, Jonathan Tan wrote:
Show 16 quoted lines
> builtin/fetch.c redundantly calculates refmaps for tags twice. Remove
> the first calculation.
> 
> This is only a code simplification and slight performance improvement -
> the result is unchanged, as the redundant refmaps are subsequently
> removed by the invocation to "ref_remove_duplicates" anyway.
> 
> This was introduced in commit c5a84e9 ("fetch --tags: fetch tags *in
> addition to* other stuff", 2013-10-29) when modifying the effect of the
> --tags parameter to "git fetch". The refmap-for-tag calculation was
> copied instead of moved.
> 
> Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
> ---
> 
> (I noticed this when working on something in this file.)

Coincidentally I noticed this a few weeks ago, too, while working on [1], but didn't follow it up. Mainly I was worried there was something hidden or clever going on, but I think it really is just a case of the code growing the two calls over time. So this looks good to me. Thanks for digging it up.

-Peff
[1] http://public-inbox.org/git/20161024132932.i42rqn2vlpocqmkq@sigill.intra.peff.net/

← back to recent threads