git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Marc Branchaud <marcnarc@xiplink.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: Jonathan Nieder <jrnieder@gmail.com>, Jeff King <peff@peff.net>,
	git@vger.kernel.org
Subject: Re: [PATCHv2] fetch: Only call a new ref a "branch" if it's under refs/heads/.
Date: Mon, 16 Apr 2012 10:58:21 -0400	[thread overview]
Message-ID: <4F8C338D.1050805@xiplink.com> (raw)
In-Reply-To: <7vy5pz1cjk.fsf@alter.siamese.dyndns.org>

On 12-04-13 06:39 PM, Junio C Hamano wrote:
> Jonathan Nieder <jrnieder@gmail.com> writes:
> 
>> Jeff King wrote:
>>
>>> Hmm. The ref->name we are comparing here is the local side. So if I am
>>> fetching a new branch "foo" from the remote into a local
>>> "refs/remotes/origin/foo" tracking ref, it used to say:
>>>
>>>     From ../parent
>>>      * [new branch]      master     -> origin/master
>>>
>>> Now it says:
>>>
>>>     From ../parent
>>>      * [new ref]         master     -> origin/master
>>>
>>> while refs/remotes/* are not technically branches in our side, I think
>>> from the user's perspective, it is true that we have fetched a branch.
>>> Should we be calling refs/remotes/* branches, too? Should we be checking
>>> the remote's name for the item instead of the local one?
>>
>> The former sounds sensible.  Then once the default refspec learns to
>> fetch into separate refs/remotes/origin/heads/* and
>> refs/remotes/origin/notes/* namespaces the logic could be updated to
>> write [new branch] or [new note collection] according to the
>> situation.
> 
> If we give 'new branch' label for this case because we store it in our
> 'refs/remotes/*', a natural extension of it would be to redefine the rule
> to narrow it to 'refs/remotes/*/heads/*' for using 'branch' when we
> introduce 'new notes collection' label to give refs we are going to store
> in 'refs/remotes/origin/notes/*'.  That is consistent with the former.
> 
> If we give 'new branch' label because refs/heads/master on the originating
> end is what is shown on the line, a natural extension would be to use 'new
> notes collection' label when we are fetching from refs/notes/* on the
> originating end, and it does not matter where we store it, either our own
> refs/notes/* or refs/remotes/origin/notes/*.  That is consistent with the
> latter.
> 
> There is no concensus if refs/remotes/origin/notes/* hierarchy is a good
> idea or not, but your argument does not support either side between the
> former or the latter anyway, so I think it is irrelevant point to raise in
> this discussion.
> 
> The choice between the two really depends on what information we are
> trying to convey with this label.  Are we saying "Hey, we now have a new
> 'branch' on our side"?  Or are we saying "We found a new 'branch' over
> there"?  It is unclear and you can argue both ways. Although I personally
> think it is the latter, I do not have a strong opinion either way.

I think git should describe what it finds in the remote repo, because as a
published repo it's refs are more likely to follow the standard layout.

The local repo is more likely to be configured with a fetch refspec like
	+refs/heads/*:refs/crazy/*
In such a case there's no point in keying off of the local names.

Git is better off describing what's appeared in the remote repo, and not
worrying about describing how the user might've mapped those things to local
refs.

(That said, patching fetch.c to do that is a bit beyond me at the moment.
Where would I find the remote's name for the ref?)

> I am actually fine with just saying '[new]' without indicating what kind
> at all, because the label is there only to fill the space where old..new
> object names are usually shown.  We don't even say "[rejected branch]",
> just "[rejected]" in the same place.

I'd be disappointed if git didn't take the extra step to tell me a bit more
about what's going on.  I like to see what kinds of new refs the remote has.

		M.

  reply	other threads:[~2012-04-16 14:57 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-13 17:08 [PATCHv2] fetch: Only call a new ref a "branch" if it's under refs/heads/ marcnarc
2012-04-13 20:07 ` Jonathan Nieder
2012-04-16 14:26   ` Marc Branchaud
2012-04-13 21:13 ` Jeff King
2012-04-13 21:53   ` Jonathan Nieder
2012-04-13 22:39     ` Junio C Hamano
2012-04-16 14:58       ` Marc Branchaud [this message]
2012-04-16 15:00         ` Jeff King
2012-04-16 15:52           ` [PATCHv3] fetch: Use the remote's ref name to decide how to describe new refs marcnarc
2012-04-16 16:10             ` Jonathan Nieder
2012-04-16 17:59             ` Junio C Hamano
2012-04-16 20:21             ` Marc Branchaud
2012-04-16 22:08             ` [PATCHv4 0/3] fetch: Only call a new ref a "branch" if it's under refs/heads/ marcnarc
2012-04-16 22:08               ` [PATCH 1/3] submodules: recursive fetch also checks new tags for submodule commits marcnarc
2012-04-16 22:08               ` [PATCH 2/3] fetch: Pass both the full remote ref and its short name to update_local_ref() marcnarc
2012-04-16 22:08               ` [PATCH 3/3] fetch: Use the remote's ref name to decide how to describe new refs marcnarc
2012-04-16 22:34                 ` Jonathan Nieder
2012-04-17  7:53                   ` Zbigniew Jędrzejewski-Szmek
2012-04-17  7:57                     ` Jonathan Nieder
2012-04-17  8:39                       ` Zbigniew Jędrzejewski-Szmek
2012-04-17 14:23                     ` Marc Branchaud
2012-04-17 15:18                       ` Jonathan Nieder
2012-04-17 15:26               ` [PATCHv4 0/3] fetch: Only call a new ref a "branch" if it's under refs/heads/ Junio C Hamano
2012-04-17 15:28                 ` Junio C Hamano
2012-04-17 19:30                 ` Marc Branchaud
2012-04-17 22:29               ` Jeff King
2012-04-16 16:08           ` [PATCHv2] " Jonathan Nieder

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=4F8C338D.1050805@xiplink.com \
    --to=marcnarc@xiplink.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jrnieder@gmail.com \
    --cc=peff@peff.net \
    /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 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 NNTP newsgroup(s).