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

[PATCH 07/19] notes-merge.c: remove implicit dependency on the_index

From
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date
Oct 19, 2018, 14:52 UTC
Message-ID
<20181019145237.16079-8-pclouds@gmail.com>
In-Reply-To
<20181019145237.16079-1-pclouds@gmail.com>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/notes.c |  2 +-
 notes-merge.c   | 12 +++++++-----
 notes-merge.h   |  6 +++++-
 3 files changed, 13 insertions(+), 7 deletions(-)
diff --git a/builtin/notes.c b/builtin/notes.c
index c05cd004ab..d8bd01656a 100644
--- a/builtin/notes.c
+++ b/builtin/notes.c
@@ -808,7 +808,7 @@ static int merge(int argc, const char **argv, const char *prefix)
 		usage_with_options(git_notes_merge_usage, options);
 	}
 
-	init_notes_merge_options(&o);
+	init_notes_merge_options(&o, the_repository);
 	o.verbosity = verbosity + NOTES_MERGE_VERBOSITY_DEFAULT;
 
 	if (do_abort)
diff --git a/notes-merge.c b/notes-merge.c
index bd05d50b05..c3bee1a87d 100644
--- a/notes-merge.c
+++ b/notes-merge.c
@@ -18,11 +18,13 @@ struct notes_merge_pair {
 	struct object_id obj, base, local, remote;
 };
 
-void init_notes_merge_options(struct notes_merge_options *o)
+void init_notes_merge_options(struct notes_merge_options *o,
+			      struct repository *repo)
 {
 	memset(o, 0, sizeof(struct notes_merge_options));
 	strbuf_init(&(o->commit_msg), 0);
 	o->verbosity = NOTES_MERGE_VERBOSITY_DEFAULT;
+	o->repo = repo;
 }
 
 static int path_to_oid(const char *path, struct object_id *oid)
@@ -127,7 +129,7 @@ static struct notes_merge_pair *diff_tree_remote(struct notes_merge_options *o,
 	trace_printf("\tdiff_tree_remote(base = %.7s, remote = %.7s)\n",
 	       oid_to_hex(base), oid_to_hex(remote));
 
-	repo_diff_setup(the_repository, &opt);
+	repo_diff_setup(o->repo, &opt);
 	opt.flags.recursive = 1;
 	opt.output_format = DIFF_FORMAT_NO_OUTPUT;
 	diff_setup_done(&opt);
@@ -190,7 +192,7 @@ static void diff_tree_local(struct notes_merge_options *o,
 	trace_printf("\tdiff_tree_local(len = %i, base = %.7s, local = %.7s)\n",
 	       len, oid_to_hex(base), oid_to_hex(local));
 
-	repo_diff_setup(the_repository, &opt);
+	repo_diff_setup(o->repo, &opt);
 	opt.flags.recursive = 1;
 	opt.output_format = DIFF_FORMAT_NO_OUTPUT;
 	diff_setup_done(&opt);
@@ -350,7 +352,7 @@ static int ll_merge_in_worktree(struct notes_merge_options *o,
 
 	status = ll_merge(&result_buf, oid_to_hex(&p->obj), &base, NULL,
 			  &local, o->local_ref, &remote, o->remote_ref,
-			  &the_index, NULL);
+			  o->repo->index, NULL);
 
 	free(base.ptr);
 	free(local.ptr);
@@ -711,7 +713,7 @@ int notes_merge_commit(struct notes_merge_options *o,
 		/* write file as blob, and add to partial_tree */
 		if (stat(path.buf, &st))
 			die_errno("Failed to stat '%s'", path.buf);
-		if (index_path(&the_index, &blob_oid, path.buf, &st, HASH_WRITE_OBJECT))
+		if (index_path(o->repo->index, &blob_oid, path.buf, &st, HASH_WRITE_OBJECT))
 			die("Failed to write blob object from '%s'", path.buf);
 		if (add_note(partial_tree, &obj_oid, &blob_oid, NULL))
 			die("Failed to add resolved note '%s' to notes tree",
diff --git a/notes-merge.h b/notes-merge.h
index 6c74e9385b..fe70cbd5e8 100644
--- a/notes-merge.h
+++ b/notes-merge.h
@@ -7,6 +7,8 @@
 struct commit;
 struct object_id;
 
+struct repository;
+
 #define NOTES_MERGE_WORKTREE "NOTES_MERGE_WORKTREE"
 
 enum notes_merge_verbosity {
@@ -15,6 +17,7 @@ enum notes_merge_verbosity {
 };
 
 struct notes_merge_options {
+	struct repository *repo;
 	const char *local_ref;
 	const char *remote_ref;
 	struct strbuf commit_msg;
@@ -23,7 +26,8 @@ struct notes_merge_options {
 	unsigned has_worktree:1;
 };
 
-void init_notes_merge_options(struct notes_merge_options *o);
+void init_notes_merge_options(struct notes_merge_options *o,
+			      struct repository *repo);
 
 /*
  * Merge notes from o->remote_ref into o->local_ref
-- 
2.19.1.647.g708186aaf9
Previous: Nguyễn Thái Ngọc DuyNext: Nguyễn Thái Ngọc Duy
Message 9 of 22 in “Kill the_index, final part”
  1. 00/19 Kill the_index, final partNguyễn Thái Ngọc Duy, Oct 19, 2018
  2. 01/19 wt-status.c: remove implicit dependency on the_indexNguyễn Thái Ngọc Duy, Oct 19, 2018
  3. 02/19 wt-status.c: remove implicit dependency the_repositoryNguyễn Thái Ngọc Duy, Oct 19, 2018
  4. 03/19 list-objects-filter.c: remove implicit dependency on the_indexNguyễn Thái Ngọc Duy, Oct 19, 2018
  5. 04/19 list-objects.c: remove implicit dependency on the_indexNguyễn Thái Ngọc Duy, Oct 19, 2018
  6. 06/19 sequencer.c: remove implicit dependency on the_repositoryNguyễn Thái Ngọc Duy, Oct 19, 2018
  7. 05/19 sequencer.c: remove implicit dependency on the_indexNguyễn Thái Ngọc Duy, Oct 19, 2018
  8. 08/19 notes-merge.c: remove implicit dependency the_repositoryNguyễn Thái Ngọc Duy, Oct 19, 2018
  9. 07/19 notes-merge.c: remove implicit dependency on the_indexNguyễn Thái Ngọc Duy, Oct 19, 2018
  10. 09/19 repository.c: replace hold_locked_index() with repo_hold_locked_index()Nguyễn Thái Ngọc Duy, Oct 19, 2018
  11. 10/19 checkout: avoid the_index when possibleNguyễn Thái Ngọc Duy, Oct 19, 2018
  12. 12/19 read-cache.c: replace update_index_if_able with repo_&Nguyễn Thái Ngọc Duy, Oct 19, 2018
  13. 13/19 transport.c: remove implicit dependency on the_indexNguyễn Thái Ngọc Duy, Oct 19, 2018
  14. 11/19 read-cache.c: kill read_index()Nguyễn Thái Ngọc Duy, Oct 19, 2018
  15. 14/19 sha1-name.c: remove implicit dependency on the_indexNguyễn Thái Ngọc Duy, Oct 19, 2018
  16. 16/19 merge-recursive.c: remove implicit dependency on the_repositoryNguyễn Thái Ngọc Duy, Oct 19, 2018
  17. 15/19 merge-recursive.c: remove implicit dependency on the_indexNguyễn Thái Ngọc Duy, Oct 19, 2018
  18. 17/19 read-cache.c: remove the_* from index_has_changes()Nguyễn Thái Ngọc Duy, Oct 19, 2018
  19. 19/19 Flip NO_THE_REPOSITORY_COMPATIBILITY_MACROSNguyễn Thái Ngọc Duy, Oct 19, 2018
  20. 18/19 cache.h: flip NO_THE_INDEX_COMPATIBILITY_MACROS switchNguyễn Thái Ngọc Duy, Oct 19, 2018
  21. Stefan BellerOct 19, 2018
  22. Duy NguyenOct 29, 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.