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

[PATCH 2/2] Use cache_sha1_file() in git-blame and git-merge-recursive.

From
Junio C Hamano <junkio@cox.net>
Date
Feb 5, 2007, 05:51 UTC
Message-ID
<7v7iuxp2xt.fsf@assigned-by-dhcp.cox.net>

git-merge-recursive wants an null tree as the fake merge base while producing the merge result tree. The null tree does not have to be written out in the object store as it won't be part of the result, and it is a prime example for using the new cache_sha1_file() function.

git-blame needs to register an arbitrary data to in-core index while annotating a working tree file (or standard input), but git-blame is a read-only application and the user of it could even lack the privilege to write into the object store; it is another good example for cache_sha1_file().

Signed-off-by: Junio C Hamano <junkio@cox.net>
---
 builtin-blame.c   |    2 +-
 merge-recursive.c |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/builtin-blame.c b/builtin-blame.c
index 897323a..15d0707 100644
--- a/builtin-blame.c
+++ b/builtin-blame.c
@@ -2005,7 +2005,7 @@ static struct commit *fake_working_tree_commit(const char *path, const char *con
 	buf[fin_size] = 0;
 	origin->file.ptr = buf;
 	origin->file.size = fin_size;
-	write_sha1_file(buf, fin_size, blob_type, origin->blob_sha1);
+	cache_sha1_file(buf, fin_size, blob_type, origin->blob_sha1);
 	commit->util = origin;
 
 	/*
diff --git a/merge-recursive.c b/merge-recursive.c
index a68fcc6..d4e2460 100644
--- a/merge-recursive.c
+++ b/merge-recursive.c
@@ -1213,7 +1213,7 @@ static int merge(struct commit *h1,
 
 		tree->object.parsed = 1;
 		tree->object.type = OBJ_TREE;
-		write_sha1_file(NULL, 0, tree_type, tree->object.sha1);
+		cache_sha1_file(NULL, 0, tree_type, tree->object.sha1);
 		merged_common_ancestors = make_virtual_commit(tree, "ancestor");
 	}
 
-- 
1.5.0.rc3.58.g79812
Next: Shawn O. Pearce
Message 1 of 2 in “Use cache_sha1_file() in git-blame and git-merge-recursive.”
  1. 2/2 Use cache_sha1_file() in git-blame and git-merge-recursive.Junio C Hamano, Feb 5, 2007
  2. Shawn O. PearceFeb 5, 2007

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.