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

Re: [PATCH/RFC] avoid accessing _all_ loose refs in git-show-ref

From
Junio C Hamano <junkio@cox.net>
Date
Dec 16, 2006, 13:12 UTC
Message-ID
<7vk60sf0hr.fsf@assigned-by-dhcp.cox.net>
In-Reply-To
<Pine.LNX.4.63.0612161335140.3635@wbgn013.biozentrum.uni-wuerzburg.de>
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
> 	This is kind of quick and dirty.

Maybe I am blind, but why don't you just do a resolve_ref() regardless of packedness? It only builds the packed refs list when it is not found as a loose ref, and never builds the loose refs list. You probably would want to reject the ones that says REF_ISSYMREF.

> 	An alternative would be to pack the tags _per default_. I once
> 	argued for that, but it appears nobody liked that idea. I even
> 	proposed to pack _all_ refs, and I still think this would be
> 	a good idea.

I do not think packing all refs is such a good idea. Branches are meant to be worked on and extended so the packed ones would become stale quickly. Packing all tags by default is something we would want when everybody knows how to handle them.

> 	Isn't it a bug that --verify succeeds, if only _one_ ref passed to 
> 	the command exists?

I think --verify should insist a single parameter, just like rev-parse.

So wouldn't the code be like:
	if (verify) {
		int flag;
        	if (pattern[1])
                	die("Eh?");
		if (resolve_ref(pattern[0], sha1, 1, &flag) &&
                	(flag & REF_ISSYMREF) == 0) {
                		printf("%s %s\n",
                                	sha1_to_hex(sha1), pattern[0]);
				exit(0);
		} else
                	die("no match");
	}
???
Previous: Johannes SchindelinNext: Johannes Schindelin
Message 2 of 3 in “avoid accessing _all_ loose refs in git-show-ref”
  1. avoid accessing _all_ loose refs in git-show-refJohannes Schindelin, Dec 16, 2006
  2. Junio C HamanoDec 16, 2006
  3. Johannes SchindelinDec 16, 2006

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.