git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCHv2] fetch: Only call a new ref a "branch" if it's under refs/heads/.

From
Jeff King <peff@peff.net>
Date
Apr 13, 2012, 21:13 UTC
Message-ID
<20120413211350.GD7919@sigill.intra.peff.net>
In-Reply-To
<1334336904-18649-1-git-send-email-marcnarc@xiplink.com>
On Fri, Apr 13, 2012 at 01:08:24PM -0400, marcnarc@xiplink.com wrote:
Show 22 quoted lines
> diff --git a/builtin/fetch.c b/builtin/fetch.c
> index cfb43df..b6f737e 100644
> --- a/builtin/fetch.c
> +++ b/builtin/fetch.c
> @@ -293,14 +293,18 @@ static int update_local_ref(struct ref *ref,
>  		const char *msg;
>  		const char *what;
>  		int r;
> -		if (!strncmp(ref->name, "refs/tags/", 10)) {
> +		if (!prefixcmp(ref->name, "refs/tags/")) {
>  			msg = "storing tag";
>  			what = _("[new tag]");
>  		}
> -		else {
> +		else if (!prefixcmp(ref->name, "refs/heads/")) {
>  			msg = "storing head";
>  			what = _("[new branch]");
>  		}
> +		else {
> +			msg = "storing ref";
> +			what = _("[new ref]");
> +		}

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?

-Peff
Previous: Marc BranchaudNext: Jonathan Nieder
Message 4 of 27 in “[PATCHv2] fetch: Only call a new ref a "branch" if it's under refs/heads/.”
  1. marcnarc@xiplink.comApr 13, 2012
  2. Jonathan NiederApr 13, 2012
  3. Marc BranchaudApr 16, 2012
  4. Jeff KingApr 13, 2012
  5. Jonathan NiederApr 13, 2012
  6. Junio C HamanoApr 13, 2012
  7. Marc BranchaudApr 16, 2012
  8. Jeff KingApr 16, 2012
  9. [PATCHv3] fetch: Use the remote's ref name to decide how to describe new refs.marcnarc@xiplink.com, Apr 16, 2012
  10. Jonathan NiederApr 16, 2012
  11. Junio C HamanoApr 16, 2012
  12. Marc BranchaudApr 16, 2012
  13. 0/3 fetch: Only call a new ref a "branch" if it's under refs/heads/.marcnarc@xiplink.com, Apr 16, 2012
  14. 1/3 submodules: recursive fetch also checks new tags for submodule commitsmarcnarc@xiplink.com, Apr 16, 2012
  15. 2/3 fetch: Pass both the full remote ref and its short name to update_local_ref().marcnarc@xiplink.com, Apr 16, 2012
  16. 3/3 fetch: Use the remote's ref name to decide how to describe new refs.marcnarc@xiplink.com, Apr 16, 2012
  17. Jonathan NiederApr 16, 2012
  18. Zbigniew Jędrzejewski-SzmekApr 17, 2012
  19. Jonathan NiederApr 17, 2012
  20. Zbigniew Jędrzejewski-SzmekApr 17, 2012
  21. Marc BranchaudApr 17, 2012
  22. Jonathan NiederApr 17, 2012
  23. Junio C HamanoApr 17, 2012
  24. Junio C HamanoApr 17, 2012
  25. Marc BranchaudApr 17, 2012
  26. Jeff KingApr 17, 2012
  27. Jonathan NiederApr 16, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.