aboutsummaryrefslogtreecommitdiff
diff refs
from: back
to: back
| flip
diff options
context:
space:
mode:
-rw-r--r--Makefile2
m---------git0
-rw-r--r--ui-blame.c9
-rw-r--r--ui-blob.c20
-rw-r--r--ui-plain.c7
-rw-r--r--ui-tree.c21
6 files changed, 36 insertions, 23 deletions
diff --git a/Makefile b/Makefile
index d13c5bd..abc52bc 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.32.0
+GIT_VER = 2.31.1
GIT_URL = https://www.kernel.org/pub/software/scm/git/git-$(GIT_VER).tar.xz
INSTALL = install
COPYTREE = cp -r
diff --git a/git b/git
-Subproject ebf3c04b262aa27fbb97f8a0156c2347fecafaf
+Subproject 48bf2fa8bad054d66bd79c6ba903c89c704201f
diff --git a/ui-blame.c b/ui-blame.c
index 03136f7..ec1d888 100644
--- a/ui-blame.c
+++ b/ui-blame.c
@@ -221,7 +221,8 @@ cleanup:
}
static int walk_tree(const struct object_id *oid, struct strbuf *base,
- const char *pathname, unsigned mode, void *cbdata)
+ const char *pathname, unsigned mode, int stage,
+ void *cbdata)
{
struct walk_tree_context *walk_tree_ctx = cbdata;
@@ -290,8 +291,10 @@ void cgit_print_blame(void)
walk_tree_ctx.match_baselen = (path_items.match) ?
basedir_len(path_items.match) : -1;
- read_tree(the_repository, repo_get_commit_tree(the_repository, commit),
- &paths, walk_tree, &walk_tree_ctx);
+ read_tree_recursive(the_repository,
+ repo_get_commit_tree(the_repository, commit),
+ "", 0, 0,
+ &paths, walk_tree, &walk_tree_ctx);
if (!walk_tree_ctx.state)
cgit_print_error_page(404, "Not found", "Not found");
else if (walk_tree_ctx.state == 2)
diff --git a/ui-blob.c b/ui-blob.c
index c10ae42..f76c641 100644
--- a/ui-blob.c
+++ b/ui-blob.c
@@ -19,7 +19,7 @@ struct walk_tree_context {
};
static int walk_tree(const struct object_id *oid, struct strbuf *base,
- const char *pathname, unsigned mode, void *cbdata)
+ const char *pathname, unsigned mode, int stage, void *cbdata)
{
struct walk_tree_context *walk_tree_ctx = cbdata;
@@ -56,9 +56,9 @@ int cgit_ref_path_exists(const char *path, const char *ref, int file_only)
goto done;
if (oid_object_info(the_repository, &oid, &size) != OBJ_COMMIT)
goto done;
- read_tree(the_repository,
- repo_get_commit_tree(the_repository, lookup_commit_reference(the_repository, &oid)),
- &paths, walk_tree, &walk_tree_ctx);
+ read_tree_recursive(the_repository,
+ repo_get_commit_tree(the_repository, lookup_commit_reference(the_repository, &oid)),
+ "", 0, 0, &paths, walk_tree, &walk_tree_ctx);
done:
free(path_items.match);
@@ -92,8 +92,10 @@ int cgit_print_file(char *path, const char *head, int file_only)
type = oid_object_info(the_repository, &oid, &size);
if (type == OBJ_COMMIT) {
commit = lookup_commit_reference(the_repository, &oid);
- read_tree(the_repository, repo_get_commit_tree(the_repository, commit),
- &paths, walk_tree, &walk_tree_ctx);
+ read_tree_recursive(the_repository,
+ repo_get_commit_tree(the_repository, commit),
+ "", 0, 0, &paths, walk_tree,
+ &walk_tree_ctx);
if (!walk_tree_ctx.found_path)
return -1;
type = oid_object_info(the_repository, &oid, &size);
@@ -149,8 +151,10 @@ 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(the_repository, &oid);
- read_tree(the_repository, repo_get_commit_tree(the_repository, commit),
- &paths, walk_tree, &walk_tree_ctx);
+ read_tree_recursive(the_repository,
+ repo_get_commit_tree(the_repository, commit),
+ "", 0, 0, &paths, walk_tree,
+ &walk_tree_ctx);
type = oid_object_info(the_repository, &oid, &size);
}
diff --git a/ui-plain.c b/ui-plain.c
index 65a205f..001001c 100644
--- a/ui-plain.c
+++ b/ui-plain.c
@@ -130,7 +130,7 @@ static void print_dir_tail(void)
}
static int walk_tree(const struct object_id *oid, struct strbuf *base,
- const char *pathname, unsigned mode, void *cbdata)
+ const char *pathname, unsigned mode, int stage, void *cbdata)
{
struct walk_tree_context *walk_tree_ctx = cbdata;
@@ -198,8 +198,9 @@ void cgit_print_plain(void)
}
else
walk_tree_ctx.match_baselen = basedir_len(path_items.match);
- read_tree(the_repository, repo_get_commit_tree(the_repository, commit),
- &paths, walk_tree, &walk_tree_ctx);
+ read_tree_recursive(the_repository,
+ repo_get_commit_tree(the_repository, commit),
+ "", 0, 0, &paths, walk_tree, &walk_tree_ctx);
if (!walk_tree_ctx.match)
cgit_print_error_page(404, "Not found", "Not found");
else if (walk_tree_ctx.match == 2)
diff --git a/ui-tree.c b/ui-tree.c
index b61f6f5..1e4efb2 100644
--- a/ui-tree.c
+++ b/ui-tree.c
@@ -139,7 +139,8 @@ struct single_tree_ctx {
};
static int single_tree_cb(const struct object_id *oid, struct strbuf *base,
- const char *pathname, unsigned mode, void *cbdata)
+ const char *pathname, unsigned mode, int stage,
+ void *cbdata)
{
struct single_tree_ctx *ctx = cbdata;
@@ -184,7 +185,8 @@ static void write_tree_link(const struct object_id *oid, char *name,
tree_ctx.name = NULL;
tree_ctx.count = 0;
- read_tree(the_repository, tree, &paths, single_tree_cb, &tree_ctx);
+ read_tree_recursive(the_repository, tree, "", 0, 1,
+ &paths, single_tree_cb, &tree_ctx);
if (tree_ctx.count != 1)
break;
@@ -197,7 +199,7 @@ static void write_tree_link(const struct object_id *oid, char *name,
}
static int ls_item(const struct object_id *oid, struct strbuf *base,
- const char *pathname, unsigned mode, void *cbdata)
+ const char *pathname, unsigned mode, int stage, void *cbdata)
{
struct walk_tree_context *walk_tree_ctx = cbdata;
char *name;
@@ -292,13 +294,14 @@ static void ls_tree(const struct object_id *oid, const char *path, struct walk_t
}
ls_head();
- read_tree(the_repository, tree, &paths, ls_item, walk_tree_ctx);
+ read_tree_recursive(the_repository, tree, "", 0, 1,
+ &paths, ls_item, walk_tree_ctx);
ls_tail();
}
static int walk_tree(const struct object_id *oid, struct strbuf *base,
- const char *pathname, unsigned mode, void *cbdata)
+ const char *pathname, unsigned mode, int stage, void *cbdata)
{
struct walk_tree_context *walk_tree_ctx = cbdata;
@@ -323,7 +326,7 @@ static int walk_tree(const struct object_id *oid, struct strbuf *base,
return 0;
}
}
- ls_item(oid, base, pathname, mode, walk_tree_ctx);
+ ls_item(oid, base, pathname, mode, stage, walk_tree_ctx);
return 0;
}
@@ -371,8 +374,10 @@ void cgit_print_tree(const char *rev, char *path)
goto cleanup;
}
- read_tree(the_repository, repo_get_commit_tree(the_repository, commit),
- &paths, walk_tree, &walk_tree_ctx);
+ read_tree_recursive(the_repository,
+ repo_get_commit_tree(the_repository, commit),
+ "", 0, 0,
+ &paths, walk_tree, &walk_tree_ctx);
if (walk_tree_ctx.state == 1)
ls_tail();
else if (walk_tree_ctx.state == 2)