git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Jeff King <peff@peff.net>
To: Felipe Contreras <felipe.contreras@gmail.com>
Cc: git@vger.kernel.org, Junio C Hamano <gitster@pobox.com>
Subject: Re: [RFC/PATCH 5/5] fetch: fix regression with transport helpers
Date: Tue, 4 Jun 2019 10:32:40 -0400	[thread overview]
Message-ID: <20190604143240.GC10598@sigill.intra.peff.net> (raw)
In-Reply-To: <20190604021330.16130-6-felipe.contreras@gmail.com>

On Mon, Jun 03, 2019 at 09:13:30PM -0500, Felipe Contreras wrote:

> Commit e198b3a740 changed the behavior of fetch with regards to tags.
> Before, null oids where not ignored, now they are, regardless of whether
> the refs have been explicitly cleared or not.
> 
>   e198b3a740 (fetch: replace string-list used as a look-up table with a hashmap)
> 
> When using a transport helper the oids can certainly be null. So now
> tags are ignored and fetching them is impossible.
> 
> This patch fixes that by having a specific flag that is set only when we
> explicitly want to ignore the refs, restoring the original behavior.

Makes sense. Prior to e198b3a740, we indicated "ignored" by setting the
oid (in item->util) to NULL. But since it's no longer a pointer after
that commit, we can't do so.

So the obvious alternative to this is going back to having it as a
pointer. I think I prefer your solution, though, since it keeps the
memory management a bit simpler, and more clearly expresses the intent.

If we add any new code that has to similarly ignore an item in the hash,
it will have to remember to use clear_item() rather than oidclr(). But I
don't think that's a big risk.

>  builtin/fetch.c           | 5 +++--
>  t/t5801-remote-helpers.sh | 2 +-
>  2 files changed, 4 insertions(+), 3 deletions(-)

The code change itself looks obviously correct.

-Peff

  reply	other threads:[~2019-06-04 14:32 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-04  2:13 [RFC/PATCH 0/5] Fix fetch regression with transport helpers Felipe Contreras
2019-06-04  2:13 ` [RFC/PATCH 1/5] t5801 (remote-helpers): cleanup refspec stuff Felipe Contreras
2019-06-04 14:16   ` Jeff King
2019-06-04  2:13 ` [RFC/PATCH 2/5] t5801 (remote-helpers): add test to fetch tags Felipe Contreras
2019-06-04 14:22   ` Jeff King
2019-06-04  2:13 ` [RFC/PATCH 3/5] fetch: trivial cleanup Felipe Contreras
2019-06-04  2:13 ` [RFC/PATCH 4/5] fetch: make the code more understandable Felipe Contreras
2019-06-04  2:13 ` [RFC/PATCH 5/5] fetch: fix regression with transport helpers Felipe Contreras
2019-06-04 14:32   ` Jeff King [this message]
2019-06-04 19:17   ` Junio C Hamano
2019-06-04 14:35 ` [RFC/PATCH 0/5] Fix fetch " Jeff King
2019-06-04 19:15   ` Felipe Contreras
2019-06-05  8:12 ` Johannes Schindelin
2019-06-05 11:27   ` Jeff King
2019-06-05 12:22     ` Duy Nguyen
2019-06-06 13:07       ` Johannes Schindelin
2019-06-06 16:13         ` Junio C Hamano
2019-06-07  5:32           ` CI builds on GitGitGadget, was " Johannes Schindelin

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

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190604143240.GC10598@sigill.intra.peff.net \
    --to=peff@peff.net \
    --cc=felipe.contreras@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).