[PATCH 1/1] RFC: git: update to v2.46.0-rc2

Christian Hesse list at eworm.de
Wed Jul 24 19:41:07 UTC 2024


From: Christian Hesse <mail at eworm.de>

Update to git version v2.46.0-rc2, this requires changes for these
upstream commits:

* e7da9385708accf518a80a1e17969020fb361048
  global: introduce `USE_THE_REPOSITORY_VARIABLE` macro

* 9da95bda74cf10e1475384a71fd20914c3b99784
  hash: require hash algorithm in `oidread()` and `oidclr()`

* 30aaff437fddd889ba429b50b96ea4c151c502c5
  refs: pass repo when peeling objects

* c8f815c2083c4b340d4148a15d45c55f2fcc7d3f
  refs: remove functions without ref store

Signed-off-by: Christian Hesse <mail at eworm.de>
---
 Makefile      |  4 ++--
 cgit.c        |  8 ++++++--
 git           |  2 +-
 parsing.c     |  2 ++
 shared.c      |  2 ++
 ui-atom.c     |  2 ++
 ui-blame.c    |  2 ++
 ui-blob.c     |  2 ++
 ui-clone.c    |  5 ++++-
 ui-commit.c   |  2 ++
 ui-diff.c     |  4 +++-
 ui-log.c      |  5 ++++-
 ui-patch.c    |  4 +++-
 ui-plain.c    |  2 ++
 ui-refs.c     | 11 ++++++++---
 ui-shared.c   |  8 ++++++--
 ui-snapshot.c |  2 ++
 ui-stats.c    |  2 ++
 ui-tag.c      |  2 ++
 ui-tree.c     |  2 ++
 20 files changed, 59 insertions(+), 14 deletions(-)

diff --git a/Makefile b/Makefile
index 1eb64ea..1d96976 100644
--- a/Makefile
+++ b/Makefile
@@ -14,8 +14,8 @@ htmldir = $(docdir)
 pdfdir = $(docdir)
 mandir = $(prefix)/share/man
 SHA1_HEADER = <openssl/sha.h>
-GIT_VER = 2.45.2
-GIT_URL = https://www.kernel.org/pub/software/scm/git/git-$(GIT_VER).tar.xz
+GIT_VER = 2.46.0.rc2
+GIT_URL = https://www.kernel.org/pub/software/scm/git/testing/git-$(GIT_VER).tar.xz
 INSTALL = install
 COPYTREE = cp -r
 MAN5_TXT = $(wildcard *.5.txt)
diff --git a/cgit.c b/cgit.c
index e616292..2efa962 100644
--- a/cgit.c
+++ b/cgit.c
@@ -6,6 +6,8 @@
  *   (see COPYING for full license text)
  */
 
+#define USE_THE_REPOSITORY_VARIABLE
+
 #include "cgit.h"
 #include "cache.h"
 #include "cmd.h"
@@ -473,7 +475,8 @@ static char *find_default_branch(struct cgit_repo *repo)
 	info.req_ref = repo->defbranch;
 	info.first_ref = NULL;
 	info.match = 0;
-	for_each_branch_ref(find_current_ref, &info);
+	refs_for_each_branch_ref(get_main_ref_store(the_repository),
+				 find_current_ref, &info);
 	if (info.match)
 		ref = info.req_ref;
 	else
@@ -490,7 +493,8 @@ static char *guess_defbranch(void)
 	const char *ref, *refname;
 	struct object_id oid;
 
-	ref = resolve_ref_unsafe("HEAD", 0, &oid, NULL);
+	ref = refs_resolve_ref_unsafe(get_main_ref_store(the_repository),
+				     "HEAD", 0, &oid, NULL);
 	if (!ref || !skip_prefix(ref, "refs/heads/", &refname))
 		return "master";
 	return xstrdup(refname);
diff --git a/git b/git
index bea9ecd..ad57f14 160000
--- a/git
+++ b/git
@@ -1 +1 @@
-Subproject commit bea9ecd24b0c3bf06cab4a851694fe09e7e51408
+Subproject commit ad57f148c6b5f8735b62238dda8f571c582e0e54
diff --git a/parsing.c b/parsing.c
index dc44ffd..5616d43 100644
--- a/parsing.c
+++ b/parsing.c
@@ -6,6 +6,8 @@
  *   (see COPYING for full license text)
  */
 
+#define USE_THE_REPOSITORY_VARIABLE
+
 #include "cgit.h"
 
 /*
diff --git a/shared.c b/shared.c
index 26b6ddb..ae3f6c1 100644
--- a/shared.c
+++ b/shared.c
@@ -6,6 +6,8 @@
  *   (see COPYING for full license text)
  */
 
+#define USE_THE_REPOSITORY_VARIABLE
+
 #include "cgit.h"
 
 struct cgit_repolist cgit_repolist;
diff --git a/ui-atom.c b/ui-atom.c
index 636cb7e..0659e96 100644
--- a/ui-atom.c
+++ b/ui-atom.c
@@ -6,6 +6,8 @@
  *   (see COPYING for full license text)
  */
 
+#define USE_THE_REPOSITORY_VARIABLE
+
 #include "cgit.h"
 #include "ui-atom.h"
 #include "html.h"
diff --git a/ui-blame.c b/ui-blame.c
index e0f0593..d07b67f 100644
--- a/ui-blame.c
+++ b/ui-blame.c
@@ -6,6 +6,8 @@
  *   (see COPYING for full license text)
  */
 
+#define USE_THE_REPOSITORY_VARIABLE
+
 #include "cgit.h"
 #include "ui-blame.h"
 #include "html.h"
diff --git a/ui-blob.c b/ui-blob.c
index 08f94ee..e554fe9 100644
--- a/ui-blob.c
+++ b/ui-blob.c
@@ -6,6 +6,8 @@
  *   (see COPYING for full license text)
  */
 
+#define USE_THE_REPOSITORY_VARIABLE
+
 #include "cgit.h"
 #include "ui-blob.h"
 #include "html.h"
diff --git a/ui-clone.c b/ui-clone.c
index 5dccb63..df196a0 100644
--- a/ui-clone.c
+++ b/ui-clone.c
@@ -7,6 +7,8 @@
  *   (see COPYING for full license text)
  */
 
+#define USE_THE_REPOSITORY_VARIABLE
+
 #include "cgit.h"
 #include "ui-clone.h"
 #include "html.h"
@@ -87,7 +89,8 @@ void cgit_clone_info(void)
 	ctx.page.mimetype = "text/plain";
 	ctx.page.filename = "info/refs";
 	cgit_print_http_headers();
-	for_each_ref(print_ref_info, NULL);
+	refs_for_each_ref(get_main_ref_store(the_repository),
+			  print_ref_info, NULL);
 }
 
 void cgit_clone_objects(void)
diff --git a/ui-commit.c b/ui-commit.c
index 30672d0..972e9bc 100644
--- a/ui-commit.c
+++ b/ui-commit.c
@@ -6,6 +6,8 @@
  *   (see COPYING for full license text)
  */
 
+#define USE_THE_REPOSITORY_VARIABLE
+
 #include "cgit.h"
 #include "ui-commit.h"
 #include "html.h"
diff --git a/ui-diff.c b/ui-diff.c
index 6f42dd4..a824546 100644
--- a/ui-diff.c
+++ b/ui-diff.c
@@ -6,6 +6,8 @@
  *   (see COPYING for full license text)
  */
 
+#define USE_THE_REPOSITORY_VARIABLE
+
 #include "cgit.h"
 #include "ui-diff.h"
 #include "html.h"
@@ -424,7 +426,7 @@ void cgit_print_diff(const char *new_rev, const char *old_rev,
 	} else if (commit->parents && commit->parents->item) {
 		oidcpy(old_rev_oid, &commit->parents->item->object.oid);
 	} else {
-		oidclr(old_rev_oid);
+		oidclr(old_rev_oid, the_repository->hash_algo);
 	}
 
 	if (!is_null_oid(old_rev_oid)) {
diff --git a/ui-log.c b/ui-log.c
index 0c8c144..dd8ef10 100644
--- a/ui-log.c
+++ b/ui-log.c
@@ -6,6 +6,8 @@
  *   (see COPYING for full license text)
  */
 
+#define USE_THE_REPOSITORY_VARIABLE
+
 #include "cgit.h"
 #include "ui-log.h"
 #include "html.h"
@@ -80,7 +82,8 @@ void show_commit_decorations(struct commit *commit)
 				ctx.qry.showmsg, 0);
 			break;
 		case DECORATION_REF_TAG:
-			if (!read_ref(deco->name, &oid_tag) && !peel_iterated_oid(&oid_tag, &peeled))
+			if (!refs_read_ref(get_main_ref_store(the_repository), deco->name, &oid_tag) &&
+			    !peel_iterated_oid(the_repository, &oid_tag, &peeled))
 				is_annotated = !oideq(&oid_tag, &peeled);
 			cgit_tag_link(buf, NULL, is_annotated ? "tag-annotated-deco" : "tag-deco", buf);
 			break;
diff --git a/ui-patch.c b/ui-patch.c
index 3819a81..f9d2eeb 100644
--- a/ui-patch.c
+++ b/ui-patch.c
@@ -6,6 +6,8 @@
  *   (see COPYING for full license text)
  */
 
+#define USE_THE_REPOSITORY_VARIABLE
+
 #include "cgit.h"
 #include "ui-patch.h"
 #include "html.h"
@@ -57,7 +59,7 @@ void cgit_print_patch(const char *new_rev, const char *old_rev,
 	} else if (commit->parents && commit->parents->item) {
 		oidcpy(&old_rev_oid, &commit->parents->item->object.oid);
 	} else {
-		oidclr(&old_rev_oid);
+		oidclr(&old_rev_oid, the_repository->hash_algo);
 	}
 
 	if (is_null_oid(&old_rev_oid)) {
diff --git a/ui-plain.c b/ui-plain.c
index a66c5a1..4d69607 100644
--- a/ui-plain.c
+++ b/ui-plain.c
@@ -6,6 +6,8 @@
  *   (see COPYING for full license text)
  */
 
+#define USE_THE_REPOSITORY_VARIABLE
+
 #include "cgit.h"
 #include "ui-plain.h"
 #include "html.h"
diff --git a/ui-refs.c b/ui-refs.c
index 456f610..11fb9fc 100644
--- a/ui-refs.c
+++ b/ui-refs.c
@@ -6,6 +6,8 @@
  *   (see COPYING for full license text)
  */
 
+#define USE_THE_REPOSITORY_VARIABLE
+
 #include "cgit.h"
 #include "ui-refs.h"
 #include "html.h"
@@ -155,9 +157,11 @@ void cgit_print_branches(int maxcount)
 
 	list.refs = NULL;
 	list.alloc = list.count = 0;
-	for_each_branch_ref(cgit_refs_cb, &list);
+	refs_for_each_branch_ref(get_main_ref_store(the_repository),
+				 cgit_refs_cb, &list);
 	if (ctx.repo->enable_remote_branches)
-		for_each_remote_ref(cgit_refs_cb, &list);
+		refs_for_each_remote_ref(get_main_ref_store(the_repository),
+					 cgit_refs_cb, &list);
 
 	if (maxcount == 0 || maxcount > list.count)
 		maxcount = list.count;
@@ -182,7 +186,8 @@ void cgit_print_tags(int maxcount)
 
 	list.refs = NULL;
 	list.alloc = list.count = 0;
-	for_each_tag_ref(cgit_refs_cb, &list);
+	refs_for_each_tag_ref(get_main_ref_store(the_repository),
+			      cgit_refs_cb, &list);
 	if (list.count == 0)
 		return;
 	qsort(list.refs, list.count, sizeof(*list.refs), cmp_tag_age);
diff --git a/ui-shared.c b/ui-shared.c
index b9ccfc1..11a32a1 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -6,6 +6,8 @@
  *   (see COPYING for full license text)
  */
 
+#define USE_THE_REPOSITORY_VARIABLE
+
 #include "cgit.h"
 #include "ui-shared.h"
 #include "cmd.h"
@@ -1047,9 +1049,11 @@ static void print_header(void)
 			html("<form method='get'>\n");
 			cgit_add_hidden_formfields(0, 1, ctx.qry.page);
 			html("<select name='h' onchange='this.form.submit();'>\n");
-			for_each_branch_ref(print_branch_option, ctx.qry.head);
+			refs_for_each_branch_ref(get_main_ref_store(the_repository),
+						 print_branch_option, ctx.qry.head);
 			if (ctx.repo->enable_remote_branches)
-				for_each_remote_ref(print_branch_option, ctx.qry.head);
+				refs_for_each_remote_ref(get_main_ref_store(the_repository),
+							 print_branch_option, ctx.qry.head);
 			html("</select> ");
 			html("<input type='submit' value='switch'/>");
 			html("</form>");
diff --git a/ui-snapshot.c b/ui-snapshot.c
index 9f629a9..3e38cd5 100644
--- a/ui-snapshot.c
+++ b/ui-snapshot.c
@@ -6,6 +6,8 @@
  *   (see COPYING for full license text)
  */
 
+#define USE_THE_REPOSITORY_VARIABLE
+
 #include "cgit.h"
 #include "ui-snapshot.h"
 #include "html.h"
diff --git a/ui-stats.c b/ui-stats.c
index 1ac67da..02c60ef 100644
--- a/ui-stats.c
+++ b/ui-stats.c
@@ -6,6 +6,8 @@
  *   (see COPYING for full license text)
  */
 
+#define USE_THE_REPOSITORY_VARIABLE
+
 #include "cgit.h"
 #include "ui-stats.h"
 #include "html.h"
diff --git a/ui-tag.c b/ui-tag.c
index 5354827..3b11226 100644
--- a/ui-tag.c
+++ b/ui-tag.c
@@ -6,6 +6,8 @@
  *   (see COPYING for full license text)
  */
 
+#define USE_THE_REPOSITORY_VARIABLE
+
 #include "cgit.h"
 #include "ui-tag.h"
 #include "html.h"
diff --git a/ui-tree.c b/ui-tree.c
index 9bd515f..26f19be 100644
--- a/ui-tree.c
+++ b/ui-tree.c
@@ -6,6 +6,8 @@
  *   (see COPYING for full license text)
  */
 
+ #define USE_THE_REPOSITORY_VARIABLE
+
 #include "cgit.h"
 #include "ui-tree.h"
 #include "html.h"
-- 
2.45.2



More information about the CGit mailing list