On Tue, Jan 13, 2015 at 09:56:47AM +0100, l...@eworm.de wrote:
From: Christian Hesse m...@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 m...@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 16
--- 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);
+}
+
Is there any benefit to introducing a new function here? In other
words, is walk_tree() used anywhere else? If not, wouldn't it be
simpler to update the signature of the existing function?
(The same comment applies to several other places below.)
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