[PATCH 1/1] git: update to v2.5.0

Christian Hesse list at eworm.de
Tue Jul 28 10:42:01 CEST 2015


From: Christian Hesse <mail at eworm.de>

Update to git version v2.5.0.

* Upstream commit 5455ee0573a22bb793a7083d593ae1ace909cd4c (Merge branch
  'bc/object-id') changed API:

  for_each_ref() callback functions were taught to name the objects
  not with "unsigned char sha1[20]" but with "struct object_id".

* Upstream commit dcf692625ac569fefbe52269061230f4fde10e47 (path.c: make
  get_pathname() call sites return const char *)

Signed-off-by: Christian Hesse <mail at eworm.de>
---
 Makefile    | 2 +-
 cgit.c      | 2 +-
 cgit.h      | 2 +-
 git         | 2 +-
 shared.c    | 8 ++++----
 ui-clone.c  | 8 ++++----
 ui-log.c    | 4 ++--
 ui-shared.c | 2 +-
 8 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/Makefile b/Makefile
index 1f84c00..65b4318 100644
--- a/Makefile
+++ b/Makefile
@@ -14,7 +14,7 @@ htmldir = $(docdir)
 pdfdir = $(docdir)
 mandir = $(prefix)/share/man
 SHA1_HEADER = <openssl/sha.h>
-GIT_VER = 2.4.1
+GIT_VER = 2.5.0
 GIT_URL = https://www.kernel.org/pub/software/scm/git/git-$(GIT_VER).tar.gz
 INSTALL = install
 COPYTREE = cp -r
diff --git a/cgit.c b/cgit.c
index ae413c6..9cb7f9e 100644
--- a/cgit.c
+++ b/cgit.c
@@ -421,7 +421,7 @@ struct refmatch {
 	int match;
 };
 
-static int find_current_ref(const char *refname, const unsigned char *sha1,
+static int find_current_ref(const char *refname, const struct object_id *oid,
 			    int flags, void *cb_data)
 {
 	struct refmatch *info;
diff --git a/cgit.h b/cgit.h
index 16f8092..db9a8eb 100644
--- a/cgit.h
+++ b/cgit.h
@@ -335,7 +335,7 @@ extern void strbuf_ensure_end(struct strbuf *sb, char c);
 
 extern void cgit_add_ref(struct reflist *list, struct refinfo *ref);
 extern void cgit_free_reflist_inner(struct reflist *list);
-extern int cgit_refs_cb(const char *refname, const unsigned char *sha1,
+extern int cgit_refs_cb(const char *refname, const struct object_id *oid,
 			int flags, void *cb_data);
 
 extern void *cgit_free_commitinfo(struct commitinfo *info);
diff --git a/git b/git
index aaa7e0d..a17c56c 160000
--- a/git
+++ b/git
@@ -1 +1 @@
-Subproject commit aaa7e0d7f8f003c0c8ab34f959083f6d191d44ca
+Subproject commit a17c56c056d5fea0843b429132904c429a900229
diff --git a/shared.c b/shared.c
index a99173b..a83afcb 100644
--- a/shared.c
+++ b/shared.c
@@ -185,13 +185,13 @@ void cgit_add_ref(struct reflist *list, struct refinfo *ref)
 	list->refs[list->count++] = ref;
 }
 
-static struct refinfo *cgit_mk_refinfo(const char *refname, const unsigned char *sha1)
+static struct refinfo *cgit_mk_refinfo(const char *refname, const struct object_id *oid)
 {
 	struct refinfo *ref;
 
 	ref = xmalloc(sizeof (struct refinfo));
 	ref->refname = xstrdup(refname);
-	ref->object = parse_object(sha1);
+	ref->object = parse_object(oid->hash);
 	switch (ref->object->type) {
 	case OBJ_TAG:
 		ref->tag = cgit_parse_tag((struct tag *)ref->object);
@@ -239,11 +239,11 @@ void cgit_free_reflist_inner(struct reflist *list)
 	free(list->refs);
 }
 
-int cgit_refs_cb(const char *refname, const unsigned char *sha1, int flags,
+int cgit_refs_cb(const char *refname, const struct object_id *oid, int flags,
 		  void *cb_data)
 {
 	struct reflist *list = (struct reflist *)cb_data;
-	struct refinfo *info = cgit_mk_refinfo(refname, sha1);
+	struct refinfo *info = cgit_mk_refinfo(refname, oid);
 
 	if (info)
 		cgit_add_ref(list, info);
diff --git a/ui-clone.c b/ui-clone.c
index e35d3d3..e4ddd34 100644
--- a/ui-clone.c
+++ b/ui-clone.c
@@ -12,15 +12,15 @@
 #include "html.h"
 #include "ui-shared.h"
 
-static int print_ref_info(const char *refname, const unsigned char *sha1,
+static int print_ref_info(const char *refname, const struct object_id *oid,
                           int flags, void *cb_data)
 {
 	struct object *obj;
 
-	if (!(obj = parse_object(sha1)))
+	if (!(obj = parse_object(oid->hash)))
 		return 0;
 
-	htmlf("%s\t%s\n", sha1_to_hex(sha1), refname);
+	htmlf("%s\t%s\n", oid_to_hex(oid), refname);
 	if (obj->type == OBJ_TAG) {
 		if (!(obj = deref_tag(obj, refname, 0)))
 			return 0;
@@ -50,7 +50,7 @@ static void print_pack_info(void)
 	}
 }
 
-static void send_file(char *path)
+static void send_file(const char *path)
 {
 	struct stat st;
 
diff --git a/ui-log.c b/ui-log.c
index 32b4c47..8028b27 100644
--- a/ui-log.c
+++ b/ui-log.c
@@ -249,11 +249,11 @@ static void print_commit(struct commit *commit, struct rev_info *revs)
 
 static const char *disambiguate_ref(const char *ref, int *must_free_result)
 {
-	unsigned char sha1[20];
+	struct object_id oid;
 	struct strbuf longref = STRBUF_INIT;
 
 	strbuf_addf(&longref, "refs/heads/%s", ref);
-	if (get_sha1(longref.buf, sha1) == 0) {
+	if (get_sha1(longref.buf, oid.hash) == 0) {
 		*must_free_result = 1;
 		return strbuf_detach(&longref, NULL);
 	}
diff --git a/ui-shared.c b/ui-shared.c
index ac5a287..e755c92 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -792,7 +792,7 @@ void cgit_add_clone_urls(void (*fn)(const char *))
 		add_clone_urls(fn, ctx.cfg.clone_prefix, ctx.repo->url);
 }
 
-static int print_branch_option(const char *refname, const unsigned char *sha1,
+static int print_branch_option(const char *refname, const struct object_id *oid,
 			       int flags, void *cb_data)
 {
 	char *name = (char *)refname;
-- 
2.5.0



More information about the CGit mailing list