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

[PATCH 1/3] upload-pack: drop lookup-before-parse optimization

From
Jeff King <peff@peff.net>
Date
Mar 16, 2013, 10:25 UTC
Message-ID
<20130316102525.GA29533@sigill.intra.peff.net>
In-Reply-To
<20130316102428.GA29358@sigill.intra.peff.net>

When we receive a "have" line from the client, we want to load the object pointed to by the sha1. However, we are careful to do:

  o = lookup_object(sha1);
  if (!o || !o->parsed)
	  o = parse_object(sha1);

to avoid loading the object from disk if we have already seen it. However, since ccdc603 (parse_object: try internal cache before reading object db), parse_object already does this optimization internally. We can just call parse_object directly.

Signed-off-by: Jeff King <peff@peff.net>
---
 upload-pack.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/upload-pack.c b/upload-pack.c
index 30146a0..6bf81aa 100644
--- a/upload-pack.c
+++ b/upload-pack.c
@@ -325,9 +325,7 @@ static int got_sha1(char *hex, unsigned char *sha1)
 	if (!has_sha1_file(sha1))
 		return -1;
 
-	o = lookup_object(sha1);
-	if (!(o && o->parsed))
-		o = parse_object(sha1);
+	o = parse_object(sha1);
 	if (!o)
 		die("oops (%s)", sha1_to_hex(sha1));
 	if (o->type == OBJ_COMMIT) {
-- 
1.8.2.rc2.7.gef06216
Previous: Jeff KingNext: Jeff King
Message 2 of 9 in “fix unparsed object access in upload-pack”
  1. 0/3 fix unparsed object access in upload-packJeff King, Mar 16, 2013
  2. 1/3 upload-pack: drop lookup-before-parse optimizationJeff King, Mar 16, 2013
  3. 2/3 upload-pack: make sure "want" objects are parsedJeff King, Mar 16, 2013
  4. 3/3 upload-pack: load non-tip "want" objects from diskJeff King, Mar 16, 2013
  5. Junio C HamanoMar 17, 2013
  6. Jeff KingMar 17, 2013
  7. Junio C HamanoMar 17, 2013
  8. Jeff KingMar 17, 2013
  9. René ScharfeMar 17, 2013

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.