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

[PATCH v3 03/36] cache-tree: convert write_*_as_tree to object_id

From
brian m. carlson <sandals@crustytoothpaste.net>
Date
Mar 12, 2018, 02:27 UTC
Message-ID
<20180312022756.483934-4-sandals@crustytoothpaste.net>
In-Reply-To
<20180312022756.483934-1-sandals@crustytoothpaste.net>

Convert write_index_as_tree and write_cache_as_tree to use struct object_id.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
---
 builtin/am.c         |  8 ++++----
 builtin/merge.c      |  2 +-
 builtin/write-tree.c |  2 +-
 cache-tree.c         | 10 +++++-----
 cache-tree.h         |  4 ++--
 sequencer.c          |  4 ++--
 6 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/builtin/am.c b/builtin/am.c
index 1151b5c73a..1bcc3606c5 100644
--- a/builtin/am.c
+++ b/builtin/am.c
@@ -1550,7 +1550,7 @@ static int fall_back_threeway(const struct am_state *state, const char *index_pa
 	discard_cache();
 	read_cache_from(index_path);
 
-	if (write_index_as_tree(orig_tree.hash, &the_index, index_path, 0, NULL))
+	if (write_index_as_tree(&orig_tree, &the_index, index_path, 0, NULL))
 		return error(_("Repository lacks necessary blobs to fall back on 3-way merge."));
 
 	say(state, stdout, _("Using index info to reconstruct a base tree..."));
@@ -1575,7 +1575,7 @@ static int fall_back_threeway(const struct am_state *state, const char *index_pa
 		return error(_("Did you hand edit your patch?\n"
 				"It does not apply to blobs recorded in its index."));
 
-	if (write_index_as_tree(their_tree.hash, &the_index, index_path, 0, NULL))
+	if (write_index_as_tree(&their_tree, &the_index, index_path, 0, NULL))
 		return error("could not write tree");
 
 	say(state, stdout, _("Falling back to patching base and 3-way merge..."));
@@ -1626,7 +1626,7 @@ static void do_commit(const struct am_state *state)
 	if (run_hook_le(NULL, "pre-applypatch", NULL))
 		exit(1);
 
-	if (write_cache_as_tree(tree.hash, 0, NULL))
+	if (write_cache_as_tree(&tree, 0, NULL))
 		die(_("git write-tree failed to write a tree"));
 
 	if (!get_oid_commit("HEAD", &parent)) {
@@ -2004,7 +2004,7 @@ static int clean_index(const struct object_id *head, const struct object_id *rem
 	if (fast_forward_to(head_tree, head_tree, 1))
 		return -1;
 
-	if (write_cache_as_tree(index.hash, 0, NULL))
+	if (write_cache_as_tree(&index, 0, NULL))
 		return -1;
 
 	index_tree = parse_tree_indirect(&index);
diff --git a/builtin/merge.c b/builtin/merge.c
index e8d9d4383e..0c7437f536 100644
--- a/builtin/merge.c
+++ b/builtin/merge.c
@@ -639,7 +639,7 @@ static int read_tree_trivial(struct object_id *common, struct object_id *head,
 
 static void write_tree_trivial(struct object_id *oid)
 {
-	if (write_cache_as_tree(oid->hash, 0, NULL))
+	if (write_cache_as_tree(oid, 0, NULL))
 		die(_("git write-tree failed to write a tree"));
 }
 
diff --git a/builtin/write-tree.c b/builtin/write-tree.c
index 299a121531..c9d3c544e7 100644
--- a/builtin/write-tree.c
+++ b/builtin/write-tree.c
@@ -38,7 +38,7 @@ int cmd_write_tree(int argc, const char **argv, const char *unused_prefix)
 	argc = parse_options(argc, argv, unused_prefix, write_tree_options,
 			     write_tree_usage, 0);
 
-	ret = write_cache_as_tree(oid.hash, flags, prefix);
+	ret = write_cache_as_tree(&oid, flags, prefix);
 	switch (ret) {
 	case 0:
 		printf("%s\n", oid_to_hex(&oid));
diff --git a/cache-tree.c b/cache-tree.c
index c52e4303df..ba07a8067e 100644
--- a/cache-tree.c
+++ b/cache-tree.c
@@ -599,7 +599,7 @@ static struct cache_tree *cache_tree_find(struct cache_tree *it, const char *pat
 	return it;
 }
 
-int write_index_as_tree(unsigned char *sha1, struct index_state *index_state, const char *index_path, int flags, const char *prefix)
+int write_index_as_tree(struct object_id *oid, struct index_state *index_state, const char *index_path, int flags, const char *prefix)
 {
 	int entries, was_valid;
 	struct lock_file lock_file = LOCK_INIT;
@@ -640,19 +640,19 @@ int write_index_as_tree(unsigned char *sha1, struct index_state *index_state, co
 			ret = WRITE_TREE_PREFIX_ERROR;
 			goto out;
 		}
-		hashcpy(sha1, subtree->oid.hash);
+		oidcpy(oid, &subtree->oid);
 	}
 	else
-		hashcpy(sha1, index_state->cache_tree->oid.hash);
+		oidcpy(oid, &index_state->cache_tree->oid);
 
 out:
 	rollback_lock_file(&lock_file);
 	return ret;
 }
 
-int write_cache_as_tree(unsigned char *sha1, int flags, const char *prefix)
+int write_cache_as_tree(struct object_id *oid, int flags, const char *prefix)
 {
-	return write_index_as_tree(sha1, &the_index, get_index_file(), flags, prefix);
+	return write_index_as_tree(oid, &the_index, get_index_file(), flags, prefix);
 }
 
 static void prime_cache_tree_rec(struct cache_tree *it, struct tree *tree)
diff --git a/cache-tree.h b/cache-tree.h
index f7b9cab7ee..cfd5328cc9 100644
--- a/cache-tree.h
+++ b/cache-tree.h
@@ -47,8 +47,8 @@ int update_main_cache_tree(int);
 #define WRITE_TREE_UNMERGED_INDEX (-2)
 #define WRITE_TREE_PREFIX_ERROR (-3)
 
-int write_index_as_tree(unsigned char *sha1, struct index_state *index_state, const char *index_path, int flags, const char *prefix);
-int write_cache_as_tree(unsigned char *sha1, int flags, const char *prefix);
+int write_index_as_tree(struct object_id *oid, struct index_state *index_state, const char *index_path, int flags, const char *prefix);
+int write_cache_as_tree(struct object_id *oid, int flags, const char *prefix);
 void prime_cache_tree(struct index_state *, struct tree *);
 
 extern int cache_tree_matches_traversal(struct cache_tree *, struct name_entry *ent, struct traverse_info *info);
diff --git a/sequencer.c b/sequencer.c
index 969755b7e0..c8160e974d 100644
--- a/sequencer.c
+++ b/sequencer.c
@@ -1113,7 +1113,7 @@ static int try_to_commit(struct strbuf *msg, const char *author,
 		commit_list_insert(current_head, &parents);
 	}
 
-	if (write_cache_as_tree(tree.hash, 0, NULL)) {
+	if (write_cache_as_tree(&tree, 0, NULL)) {
 		res = error(_("git write-tree failed to write a tree"));
 		goto out;
 	}
@@ -1475,7 +1475,7 @@ static int do_pick_commit(enum todo_command command, struct commit *commit,
 		 * that represents the "current" state for merge-recursive
 		 * to work on.
 		 */
-		if (write_cache_as_tree(head.hash, 0, NULL))
+		if (write_cache_as_tree(&head, 0, NULL))
 			return error(_("your index file is unmerged."));
 	} else {
 		unborn = get_oid("HEAD", &head);
Previous: brian m. carlsonNext: brian m. carlson
Message 3 of 42 in “object_id part 12”
  1. 00/36 object_id part 12brian m. carlson, Mar 12, 2018
  2. 01/36 bulk-checkin: convert index_bulk_checkin to struct object_idbrian m. carlson, Mar 12, 2018
  3. 03/36 cache-tree: convert write_*_as_tree to object_idbrian m. carlson, Mar 12, 2018
  4. 04/36 cache-tree: convert remnants to struct object_idbrian m. carlson, Mar 12, 2018
  5. 06/36 tree: convert read_tree_recursive to struct object_idbrian m. carlson, Mar 12, 2018
  6. 08/36 strbuf: convert strbuf_add_unique_abbrev to use struct object_idbrian m. carlson, Mar 12, 2018
  7. 07/36 ref-filter: convert grab_objectname to struct object_idbrian m. carlson, Mar 12, 2018
  8. 13/36 replace_object: convert struct replace_object to object_idbrian m. carlson, Mar 12, 2018
  9. 16/36 archive: convert sha1_file_to_archive to struct object_idbrian m. carlson, Mar 12, 2018
  10. 20/36 streaming: convert open_istream to use struct object_idbrian m. carlson, Mar 12, 2018
  11. 22/36 sha1_file: convert assert_sha1_type to object_idbrian m. carlson, Mar 12, 2018
  12. 23/36 sha1_file: convert retry_bad_packed_offset to struct object_idbrian m. carlson, Mar 12, 2018
  13. 25/36 Convert remaining callers of sha1_object_info_extended to object_idbrian m. carlson, Mar 12, 2018
  14. 27/36 builtin/fmt-merge-msg: convert remaining code to object_idbrian m. carlson, Mar 12, 2018
  15. 30/36 streaming: convert istream internals to struct object_idbrian m. carlson, Mar 12, 2018
  16. 26/36 sha1_file: convert sha1_object_info* to object_idbrian m. carlson, Mar 12, 2018
  17. 28/36 builtin/notes: convert static functions to object_idbrian m. carlson, Mar 12, 2018
  18. 34/36 Convert lookup_replace_object to struct object_idbrian m. carlson, Mar 12, 2018
  19. 33/36 sha1_file: convert read_sha1_file to struct object_idbrian m. carlson, Mar 12, 2018
  20. 36/36 convert: convert to struct object_idbrian m. carlson, Mar 12, 2018
  21. 29/36 tree-walk: convert get_tree_entry_follow_symlinks internals to object_idbrian m. carlson, Mar 12, 2018
  22. 32/36 sha1_file: convert read_object_with_reference to object_idbrian m. carlson, Mar 12, 2018
  23. 35/36 sha1_file: introduce a constant for max header lengthbrian m. carlson, Mar 12, 2018
  24. 24/36 packfile: convert unpack_entry to struct object_idbrian m. carlson, Mar 12, 2018
  25. 31/36 tree-walk: convert tree entry functions to object_idbrian m. carlson, Mar 12, 2018
  26. 19/36 sha1_file: convert check_sha1_signature to struct object_idbrian m. carlson, Mar 12, 2018
  27. 21/36 builtin/mktree: convert to struct object_idbrian m. carlson, Mar 12, 2018
  28. 14/36 builtin/mktag: convert to struct object_idbrian m. carlson, Mar 12, 2018
  29. 18/36 sha1_file: convert read_loose_object to use struct object_idbrian m. carlson, Mar 12, 2018
  30. 12/36 send-pack: convert remaining functions to struct object_idbrian m. carlson, Mar 12, 2018
  31. 15/36 archive: convert write_archive_entry_fn_t to object_idbrian m. carlson, Mar 12, 2018
  32. 17/36 builtin/index-pack: convert struct ref_delta_entry to object_idbrian m. carlson, Mar 12, 2018
  33. 09/36 wt-status: convert struct wt_status_state to object_idbrian m. carlson, Mar 12, 2018
  34. 11/36 http-walker: convert struct object_request to use struct object_idbrian m. carlson, Mar 12, 2018
  35. 05/36 resolve-undo: convert struct resolve_undo_info to object_idbrian m. carlson, Mar 12, 2018
  36. 10/36 Convert find_unique_abbrev* to struct object_idbrian m. carlson, Mar 12, 2018
  37. 02/36 builtin/write-tree: convert to struct object_idbrian m. carlson, Mar 12, 2018
  38. Junio C HamanoMar 14, 2018
  39. Junio C HamanoMar 14, 2018
  40. brian m. carlsonMar 15, 2018
  41. Junio C HamanoMar 14, 2018
  42. brian m. carlsonMar 15, 2018

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.