From: Junio C Hamano <gitster@pobox.com>
To: Jeff King <peff@peff.net>
Cc: Dmitry Ivankov <divanorama@gmail.com>,
git@vger.kernel.org, Sverre Rabbelier <srabbelier@gmail.com>,
Jonathan Nieder <jrnieder@gmail.com>
Subject: Re: [PATCH 3/3] clone: always fetch remote HEAD
Date: Mon, 06 Jun 2011 13:31:54 -0700 [thread overview]
Message-ID: <7vipsi8zwl.fsf@alter.siamese.dyndns.org> (raw)
In-Reply-To: <20110603051805.GC1008@sigill.intra.peff.net> (Jeff King's message of "Fri, 3 Jun 2011 01:18:05 -0400")
Jeff King <peff@peff.net> writes:
> diff --git a/builtin/clone.c b/builtin/clone.c
> index f579794..a99f1c8 100644
> --- a/builtin/clone.c
> +++ b/builtin/clone.c
> @@ -343,8 +343,9 @@ static void remove_junk_on_signal(int signo)
> static struct ref *wanted_peer_refs(const struct ref *refs,
> struct refspec *refspec)
> {
> - struct ref *local_refs = NULL;
> - struct ref **tail = &local_refs;
> + struct ref *head = get_remote_ref(refs, "HEAD");
The rest of the patch looked quite sane but I wonder if this should be
using get_remote_ref() that calls find_ref_by_name_abbrev() which in turn
would hit "refs/heads/HEAD" if the remote side didn't give you "HEAD".
Shouldn't it be using find_ref_by_name() directly?
> @@ -357,8 +358,11 @@ static void write_remote_refs(const struct ref *local_refs)
> {
> const struct ref *r;
>
> - for (r = local_refs; r; r = r->next)
> + for (r = local_refs; r; r = r->next) {
> + if (!r->peer_ref)
> + continue;
As this is part of this patch, I presume this test reliably catch "HEAD"
and only "HEAD", but what is it that gives us this guarantee? Is it that
in all three possible configurations (i.e. traditional no-separate remote
layout, separate remote layout, or mirrored layout), we never map anything
outside refs/heads/* and refs/tags/* namespace, hence things like HEAD
will never have peer_ref defined?
This is not a complaint but is an honest question. I am wondering how
future possible enhancements to "clone" (like the rumored "track only this
branch") will affect codepaths around this area.
next prev parent reply other threads:[~2011-06-06 20:32 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-01 21:30 git clone (ssh://) skips detached HEAD Dmitry Ivankov
2011-06-01 22:05 ` Jeff King
2011-06-01 22:18 ` Dmitry Ivankov
2011-06-01 22:22 ` Junio C Hamano
2011-06-01 22:47 ` Jeff King
2011-06-01 22:53 ` Jeff King
2011-06-03 5:09 ` Jeff King
2011-06-03 5:10 ` [PATCH 1/3] t: add tests for cloning remotes with " Jeff King
2011-06-03 5:11 ` [PATCH 2/3] consider only branches in guess_remote_head Jeff King
2011-06-03 5:18 ` [PATCH 3/3] clone: always fetch remote HEAD Jeff King
2011-06-03 5:36 ` Sverre Rabbelier
2011-06-03 5:43 ` Jeff King
2011-06-03 14:51 ` Jeff King
2011-06-03 16:28 ` Junio C Hamano
2011-06-03 18:10 ` Jeff King
2011-06-04 1:50 ` Sverre Rabbelier
2011-06-06 16:08 ` Jeff King
2011-06-06 0:47 ` Junio C Hamano
2011-06-06 1:00 ` Junio C Hamano
2011-06-06 13:05 ` Sverre Rabbelier
2011-06-06 13:57 ` Junio C Hamano
2011-06-06 16:11 ` Jeff King
2011-06-06 19:05 ` Sverre Rabbelier
2011-06-07 17:10 ` Jeff King
2011-06-07 17:20 ` Sverre Rabbelier
2011-06-07 17:18 ` [PATCH 0/8] minor import/export remote helper fixes Jeff King
2011-06-07 17:19 ` [PATCH 1/8] transport-helper: fix minor leak in push_refs_with_export Jeff King
2011-06-07 17:19 ` [PATCH 2/8] git-remote-testgit: exit gracefully after push Jeff King
2011-06-07 17:48 ` Sverre Rabbelier
2011-06-07 17:20 ` [PATCH 3/8] t5800: factor out some ref tests Jeff King
2011-06-07 17:22 ` Sverre Rabbelier
2011-06-07 17:20 ` [PATCH 4/8] t5800: document some non-functional parts of remote helpers Jeff King
2011-06-07 17:25 ` Sverre Rabbelier
2011-06-07 17:28 ` Jeff King
2011-06-07 17:34 ` Sverre Rabbelier
2011-06-07 17:51 ` Jeff King
2011-06-07 17:53 ` Sverre Rabbelier
2011-06-07 17:55 ` Jeff King
2011-06-08 23:19 ` Junio C Hamano
2011-06-09 0:11 ` Jeff King
2011-06-09 0:43 ` Junio C Hamano
2011-06-09 0:45 ` Jeff King
2011-06-09 6:20 ` Sverre Rabbelier
2011-06-07 17:20 ` [PATCH 5/8] teach remote-testgit to import non-HEAD refs Jeff King
2011-06-08 23:21 ` Junio C Hamano
2011-06-09 0:17 ` Jeff King
2011-06-07 17:21 ` [PATCH 6/8] teach remote-testgit to import multiple refs Jeff King
2011-06-07 17:21 ` [PATCH 7/8] transport-helper: don't feed bogus refs to export push Jeff King
2011-06-07 17:31 ` Sverre Rabbelier
2011-06-07 17:21 ` [PATCH 8/8] git_remote_helpers: push all refs during a non-local export Jeff King
2011-06-07 17:32 ` Sverre Rabbelier
2011-06-07 17:42 ` Jeff King
2011-06-07 17:44 ` Sverre Rabbelier
2011-06-06 20:31 ` Junio C Hamano [this message]
2011-06-06 22:08 ` [PATCH 3/3] clone: always fetch remote HEAD Jeff King
2011-06-07 23:01 ` Jeff King
2011-06-07 23:03 ` [PATCH 1/2] make copy_ref globally available Jeff King
2011-06-07 23:03 ` [PATCH 2/2] clone: always fetch remote HEAD Jeff King
2011-06-07 23:18 ` [PATCH 3/3] " Junio C Hamano
2011-06-03 16:11 ` git clone (ssh://) skips detached HEAD Junio C Hamano
2011-06-03 18:48 ` Jeff King
2011-06-01 22:42 ` Jakub Narebski
2011-06-01 22:51 ` Jeff King
2011-06-02 20:02 ` Jakub Narebski
2011-06-03 2:52 ` Jeff King
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=7vipsi8zwl.fsf@alter.siamese.dyndns.org \
--to=gitster@pobox.com \
--cc=divanorama@gmail.com \
--cc=git@vger.kernel.org \
--cc=jrnieder@gmail.com \
--cc=peff@peff.net \
--cc=srabbelier@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.