[PATCH 1/1] git: preview for v2.3.0-rc0

list at eworm.de list at eworm.de
Tue Jan 13 09:56:47 CET 2015


From: Christian Hesse <mail at eworm.de>

* sort_string_list(): rename to string_list_sort() (upstream commit 3383e199)
* update read_tree_recursive callback to pass strbuf as base (upstream
  commit 6a0b0b6d)

Signed-off-by: Christian Hesse <mail at eworm.de>
---
 Makefile   |  4 ++--
 cgit.c     |  2 +-
 git        |  2 +-
 ui-blob.c  | 14 +++++++++++---
 ui-plain.c | 10 +++++++++-
 ui-tree.c  | 21 +++++++++++++++++++--
 6 files changed, 43 insertions(+), 10 deletions(-)

diff --git a/Makefile b/Makefile
index 38bf595..36c30a8 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.2.1
-GIT_URL = https://www.kernel.org/pub/software/scm/git/git-$(GIT_VER).tar.gz
+GIT_VER = 2.3.0.rc0
+GIT_URL = https://www.kernel.org/pub/software/scm/git/testing/git-$(GIT_VER).tar.gz
 INSTALL = install
 COPYTREE = cp -r
 MAN5_TXT = $(wildcard *.5.txt)
diff --git a/cgit.c b/cgit.c
index 79019c2..df301ea 100644
--- a/cgit.c
+++ b/cgit.c
@@ -599,7 +599,7 @@ static int prepare_repo_cmd(void)
 		free(tmp);
 		return 1;
 	}
-	sort_string_list(&ctx.repo->submodules);
+	string_list_sort(&ctx.repo->submodules);
 	cgit_prepare_repo_env(ctx.repo);
 	choose_readme(ctx.repo);
 	return 0;
diff --git a/git b/git
index 9b7cbb3..addfb21 160000
--- a/git
+++ b/git
@@ -1 +1 @@
-Subproject commit 9b7cbb315923e61bb0c4297c701089f30e116750
+Subproject commit addfb21a94fb4e6b9d07b270f7bb3748767a8f38
diff --git a/ui-blob.c b/ui-blob.c
index c2de8d6..90fcf81 100644
--- a/ui-blob.c
+++ b/ui-blob.c
@@ -33,6 +33,14 @@ static int walk_tree(const unsigned char *sha1, const char *base, int baselen,
 	return 0;
 }
 
+static int walk_tree_buf(const unsigned char *sha1, struct strbuf *base,
+	const char *filename, unsigned mode, int stage,
+	void *context)
+{
+	return walk_tree(sha1, base->buf, base->len,
+		filename, mode, stage, context);
+}
+
 int cgit_ref_path_exists(const char *path, const char *ref, int file_only)
 {
 	unsigned char sha1[20];
@@ -56,7 +64,7 @@ int cgit_ref_path_exists(const char *path, const char *ref, int file_only)
 		return 0;
 	if (sha1_object_info(sha1, &size) != OBJ_COMMIT)
 		return 0;
-	read_tree_recursive(lookup_commit_reference(sha1)->tree, "", 0, 0, &paths, walk_tree, &walk_tree_ctx);
+	read_tree_recursive(lookup_commit_reference(sha1)->tree, "", 0, 0, &paths, walk_tree_buf, &walk_tree_ctx);
 	return walk_tree_ctx.found_path;
 }
 
@@ -87,7 +95,7 @@ int cgit_print_file(char *path, const char *head, int file_only)
 	type = sha1_object_info(sha1, &size);
 	if (type == OBJ_COMMIT && path) {
 		commit = lookup_commit_reference(sha1);
-		read_tree_recursive(commit->tree, "", 0, 0, &paths, walk_tree, &walk_tree_ctx);
+		read_tree_recursive(commit->tree, "", 0, 0, &paths, walk_tree_buf, &walk_tree_ctx);
 		if (!walk_tree_ctx.found_path)
 			return -1;
 		type = sha1_object_info(sha1, &size);
@@ -140,7 +148,7 @@ void cgit_print_blob(const char *hex, char *path, const char *head, int file_onl
 
 	if ((!hex) && type == OBJ_COMMIT && path) {
 		commit = lookup_commit_reference(sha1);
-		read_tree_recursive(commit->tree, "", 0, 0, &paths, walk_tree, &walk_tree_ctx);
+		read_tree_recursive(commit->tree, "", 0, 0, &paths, walk_tree_buf, &walk_tree_ctx);
 		type = sha1_object_info(sha1,&size);
 	}
 
diff --git a/ui-plain.c b/ui-plain.c
index 30fff89..891e9f7 100644
--- a/ui-plain.c
+++ b/ui-plain.c
@@ -198,6 +198,14 @@ static int walk_tree(const unsigned char *sha1, const char *base, int baselen,
 	return 0;
 }
 
+static int walk_tree_buf(const unsigned char *sha1, struct strbuf *base,
+	const char *filename, unsigned mode, int stage,
+	void *context)
+{
+	return walk_tree(sha1, base->buf, base->len,
+		filename, mode, stage, context);
+}
+
 static int basedir_len(const char *path)
 {
 	char *p = strrchr(path, '/');
@@ -243,7 +251,7 @@ void cgit_print_plain(void)
 	}
 	else
 		walk_tree_ctx.match_baselen = basedir_len(path_items.match);
-	read_tree_recursive(commit->tree, "", 0, 0, &paths, walk_tree, &walk_tree_ctx);
+	read_tree_recursive(commit->tree, "", 0, 0, &paths, walk_tree_buf, &walk_tree_ctx);
 	if (!walk_tree_ctx.match)
 		html_status(404, "Not found", 0);
 	else if (walk_tree_ctx.match == 2)
diff --git a/ui-tree.c b/ui-tree.c
index e4c3d22..7cc45e9 100644
--- a/ui-tree.c
+++ b/ui-tree.c
@@ -181,6 +181,15 @@ static int ls_item(const unsigned char *sha1, const char *base, int baselen,
 	return 0;
 }
 
+static int ls_item_buf(const unsigned char *sha1, struct strbuf *base,
+	const char *filename, unsigned mode, int stage,
+	void *context)
+{
+	return ls_item(sha1, base->buf, base->len,
+		filename, mode, stage, context);
+}
+
+
 static void ls_head()
 {
 	html("<table summary='tree listing' class='list'>\n");
@@ -211,7 +220,7 @@ static void ls_tree(const unsigned char *sha1, char *path, struct walk_tree_cont
 	}
 
 	ls_head();
-	read_tree_recursive(tree, "", 0, 1, &paths, ls_item, walk_tree_ctx);
+	read_tree_recursive(tree, "", 0, 1, &paths, ls_item_buf, walk_tree_ctx);
 	ls_tail();
 }
 
@@ -242,6 +251,14 @@ static int walk_tree(const unsigned char *sha1, const char *base, int baselen,
 	return 0;
 }
 
+static int walk_tree_buf(const unsigned char *sha1, struct strbuf *base,
+	const char *filename, unsigned mode, int stage,
+	void *context)
+{
+	return walk_tree(sha1, base->buf, base->len,
+		filename, mode, stage, context);
+}
+
 
 /*
  * Show a tree or a blob
@@ -285,7 +302,7 @@ void cgit_print_tree(const char *rev, char *path)
 		goto cleanup;
 	}
 
-	read_tree_recursive(commit->tree, "", 0, 0, &paths, walk_tree, &walk_tree_ctx);
+	read_tree_recursive(commit->tree, "", 0, 0, &paths, walk_tree_buf, &walk_tree_ctx);
 	if (walk_tree_ctx.state == 1)
 		ls_tail();
 
-- 
2.2.1



More information about the CGit mailing list