diff options
-rw-r--r-- | Makefile | 2 | ||||
m--------- | git | 0 | ||||
-rw-r--r-- | ui-blame.c | 9 | ||||
-rw-r--r-- | ui-blob.c | 20 | ||||
-rw-r--r-- | ui-plain.c | 7 | ||||
-rw-r--r-- | ui-tree.c | 21 |
6 files changed, 23 insertions, 36 deletions
@@ -14,7 +14,7 @@ htmldir = $(docdir) | |||
14 | pdfdir = $(docdir) | 14 | pdfdir = $(docdir) |
15 | mandir = $(prefix)/share/man | 15 | mandir = $(prefix)/share/man |
16 | SHA1_HEADER = <openssl/sha.h> | 16 | SHA1_HEADER = <openssl/sha.h> |
17 | GIT_VER = 2.31.1 | 17 | GIT_VER = 2.32.0 |
18 | GIT_URL = https://www.kernel.org/pub/software/scm/git/git-$(GIT_VER).tar.xz | 18 | GIT_URL = https://www.kernel.org/pub/software/scm/git/git-$(GIT_VER).tar.xz |
19 | INSTALL = install | 19 | INSTALL = install |
20 | COPYTREE = cp -r | 20 | COPYTREE = cp -r |
diff --git a/git b/git | |||
Subproject 48bf2fa8bad054d66bd79c6ba903c89c704201f | Subproject ebf3c04b262aa27fbb97f8a0156c2347fecafaf | ||
@@ -221,8 +221,7 @@ cleanup: | |||
221 | } | 221 | } |
222 | 222 | ||
223 | static int walk_tree(const struct object_id *oid, struct strbuf *base, | 223 | static int walk_tree(const struct object_id *oid, struct strbuf *base, |
224 | const char *pathname, unsigned mode, int stage, | 224 | const char *pathname, unsigned mode, void *cbdata) |
225 | void *cbdata) | ||
226 | { | 225 | { |
227 | struct walk_tree_context *walk_tree_ctx = cbdata; | 226 | struct walk_tree_context *walk_tree_ctx = cbdata; |
228 | 227 | ||
@@ -291,10 +290,8 @@ void cgit_print_blame(void) | |||
291 | walk_tree_ctx.match_baselen = (path_items.match) ? | 290 | walk_tree_ctx.match_baselen = (path_items.match) ? |
292 | basedir_len(path_items.match) : -1; | 291 | basedir_len(path_items.match) : -1; |
293 | 292 | ||
294 | read_tree_recursive(the_repository, | 293 | read_tree(the_repository, repo_get_commit_tree(the_repository, commit), |
295 | repo_get_commit_tree(the_repository, commit), | 294 | &paths, walk_tree, &walk_tree_ctx); |
296 | "", 0, 0, | ||
297 | &paths, walk_tree, &walk_tree_ctx); | ||
298 | if (!walk_tree_ctx.state) | 295 | if (!walk_tree_ctx.state) |
299 | cgit_print_error_page(404, "Not found", "Not found"); | 296 | cgit_print_error_page(404, "Not found", "Not found"); |
300 | else if (walk_tree_ctx.state == 2) | 297 | else if (walk_tree_ctx.state == 2) |
@@ -19,7 +19,7 @@ struct walk_tree_context { | |||
19 | }; | 19 | }; |
20 | 20 | ||
21 | static int walk_tree(const struct object_id *oid, struct strbuf *base, | 21 | static int walk_tree(const struct object_id *oid, struct strbuf *base, |
22 | const char *pathname, unsigned mode, int stage, void *cbdata) | 22 | const char *pathname, unsigned mode, void *cbdata) |
23 | { | 23 | { |
24 | struct walk_tree_context *walk_tree_ctx = cbdata; | 24 | struct walk_tree_context *walk_tree_ctx = cbdata; |
25 | 25 | ||
@@ -56,9 +56,9 @@ int cgit_ref_path_exists(const char *path, const char *ref, int file_only) | |||
56 | goto done; | 56 | goto done; |
57 | if (oid_object_info(the_repository, &oid, &size) != OBJ_COMMIT) | 57 | if (oid_object_info(the_repository, &oid, &size) != OBJ_COMMIT) |
58 | goto done; | 58 | goto done; |
59 | read_tree_recursive(the_repository, | 59 | read_tree(the_repository, |
60 | repo_get_commit_tree(the_repository, lookup_commit_reference(the_repository, &oid)), | 60 | repo_get_commit_tree(the_repository, lookup_commit_reference(the_repository, &oid)), |
61 | "", 0, 0, &paths, walk_tree, &walk_tree_ctx); | 61 | &paths, walk_tree, &walk_tree_ctx); |
62 | 62 | ||
63 | done: | 63 | done: |
64 | free(path_items.match); | 64 | free(path_items.match); |
@@ -92,10 +92,8 @@ int cgit_print_file(char *path, const char *head, int file_only) | |||
92 | type = oid_object_info(the_repository, &oid, &size); | 92 | type = oid_object_info(the_repository, &oid, &size); |
93 | if (type == OBJ_COMMIT) { | 93 | if (type == OBJ_COMMIT) { |
94 | commit = lookup_commit_reference(the_repository, &oid); | 94 | commit = lookup_commit_reference(the_repository, &oid); |
95 | read_tree_recursive(the_repository, | 95 | read_tree(the_repository, repo_get_commit_tree(the_repository, commit), |
96 | repo_get_commit_tree(the_repository, commit), | 96 | &paths, walk_tree, &walk_tree_ctx); |
97 | "", 0, 0, &paths, walk_tree, | ||
98 | &walk_tree_ctx); | ||
99 | if (!walk_tree_ctx.found_path) | 97 | if (!walk_tree_ctx.found_path) |
100 | return -1; | 98 | return -1; |
101 | type = oid_object_info(the_repository, &oid, &size); | 99 | type = oid_object_info(the_repository, &oid, &size); |
@@ -151,10 +149,8 @@ void cgit_print_blob(const char *hex, char *path, const char *head, int file_onl | |||
151 | 149 | ||
152 | if ((!hex) && type == OBJ_COMMIT && path) { | 150 | if ((!hex) && type == OBJ_COMMIT && path) { |
153 | commit = lookup_commit_reference(the_repository, &oid); | 151 | commit = lookup_commit_reference(the_repository, &oid); |
154 | read_tree_recursive(the_repository, | 152 | read_tree(the_repository, repo_get_commit_tree(the_repository, commit), |
155 | repo_get_commit_tree(the_repository, commit), | 153 | &paths, walk_tree, &walk_tree_ctx); |
156 | "", 0, 0, &paths, walk_tree, | ||
157 | &walk_tree_ctx); | ||
158 | type = oid_object_info(the_repository, &oid, &size); | 154 | type = oid_object_info(the_repository, &oid, &size); |
159 | } | 155 | } |
160 | 156 | ||
@@ -130,7 +130,7 @@ static void print_dir_tail(void) | |||
130 | } | 130 | } |
131 | 131 | ||
132 | static int walk_tree(const struct object_id *oid, struct strbuf *base, | 132 | static int walk_tree(const struct object_id *oid, struct strbuf *base, |
133 | const char *pathname, unsigned mode, int stage, void *cbdata) | 133 | const char *pathname, unsigned mode, void *cbdata) |
134 | { | 134 | { |
135 | struct walk_tree_context *walk_tree_ctx = cbdata; | 135 | struct walk_tree_context *walk_tree_ctx = cbdata; |
136 | 136 | ||
@@ -198,9 +198,8 @@ void cgit_print_plain(void) | |||
198 | } | 198 | } |
199 | else | 199 | else |
200 | walk_tree_ctx.match_baselen = basedir_len(path_items.match); | 200 | walk_tree_ctx.match_baselen = basedir_len(path_items.match); |
201 | read_tree_recursive(the_repository, | 201 | read_tree(the_repository, repo_get_commit_tree(the_repository, commit), |
202 | repo_get_commit_tree(the_repository, commit), | 202 | &paths, walk_tree, &walk_tree_ctx); |
203 | "", 0, 0, &paths, walk_tree, &walk_tree_ctx); | ||
204 | if (!walk_tree_ctx.match) | 203 | if (!walk_tree_ctx.match) |
205 | cgit_print_error_page(404, "Not found", "Not found"); | 204 | cgit_print_error_page(404, "Not found", "Not found"); |
206 | else if (walk_tree_ctx.match == 2) | 205 | else if (walk_tree_ctx.match == 2) |
@@ -139,8 +139,7 @@ struct single_tree_ctx { | |||
139 | }; | 139 | }; |
140 | 140 | ||
141 | static int single_tree_cb(const struct object_id *oid, struct strbuf *base, | 141 | static int single_tree_cb(const struct object_id *oid, struct strbuf *base, |
142 | const char *pathname, unsigned mode, int stage, | 142 | const char *pathname, unsigned mode, void *cbdata) |
143 | void *cbdata) | ||
144 | { | 143 | { |
145 | struct single_tree_ctx *ctx = cbdata; | 144 | struct single_tree_ctx *ctx = cbdata; |
146 | 145 | ||
@@ -185,8 +184,7 @@ static void write_tree_link(const struct object_id *oid, char *name, | |||
185 | tree_ctx.name = NULL; | 184 | tree_ctx.name = NULL; |
186 | tree_ctx.count = 0; | 185 | tree_ctx.count = 0; |
187 | 186 | ||
188 | read_tree_recursive(the_repository, tree, "", 0, 1, | 187 | read_tree(the_repository, tree, &paths, single_tree_cb, &tree_ctx); |
189 | &paths, single_tree_cb, &tree_ctx); | ||
190 | 188 | ||
191 | if (tree_ctx.count != 1) | 189 | if (tree_ctx.count != 1) |
192 | break; | 190 | break; |
@@ -199,7 +197,7 @@ static void write_tree_link(const struct object_id *oid, char *name, | |||
199 | } | 197 | } |
200 | 198 | ||
201 | static int ls_item(const struct object_id *oid, struct strbuf *base, | 199 | static int ls_item(const struct object_id *oid, struct strbuf *base, |
202 | const char *pathname, unsigned mode, int stage, void *cbdata) | 200 | const char *pathname, unsigned mode, void *cbdata) |
203 | { | 201 | { |
204 | struct walk_tree_context *walk_tree_ctx = cbdata; | 202 | struct walk_tree_context *walk_tree_ctx = cbdata; |
205 | char *name; | 203 | char *name; |
@@ -294,14 +292,13 @@ static void ls_tree(const struct object_id *oid, const char *path, struct walk_t | |||
294 | } | 292 | } |
295 | 293 | ||
296 | ls_head(); | 294 | ls_head(); |
297 | read_tree_recursive(the_repository, tree, "", 0, 1, | 295 | read_tree(the_repository, tree, &paths, ls_item, walk_tree_ctx); |
298 | &paths, ls_item, walk_tree_ctx); | ||
299 | ls_tail(); | 296 | ls_tail(); |
300 | } | 297 | } |
301 | 298 | ||
302 | 299 | ||
303 | static int walk_tree(const struct object_id *oid, struct strbuf *base, | 300 | static int walk_tree(const struct object_id *oid, struct strbuf *base, |
304 | const char *pathname, unsigned mode, int stage, void *cbdata) | 301 | const char *pathname, unsigned mode, void *cbdata) |
305 | { | 302 | { |
306 | struct walk_tree_context *walk_tree_ctx = cbdata; | 303 | struct walk_tree_context *walk_tree_ctx = cbdata; |
307 | 304 | ||
@@ -326,7 +323,7 @@ static int walk_tree(const struct object_id *oid, struct strbuf *base, | |||
326 | return 0; | 323 | return 0; |
327 | } | 324 | } |
328 | } | 325 | } |
329 | ls_item(oid, base, pathname, mode, stage, walk_tree_ctx); | 326 | ls_item(oid, base, pathname, mode, walk_tree_ctx); |
330 | return 0; | 327 | return 0; |
331 | } | 328 | } |
332 | 329 | ||
@@ -374,10 +371,8 @@ void cgit_print_tree(const char *rev, char *path) | |||
374 | goto cleanup; | 371 | goto cleanup; |
375 | } | 372 | } |
376 | 373 | ||
377 | read_tree_recursive(the_repository, | 374 | read_tree(the_repository, repo_get_commit_tree(the_repository, commit), |
378 | repo_get_commit_tree(the_repository, commit), | 375 | &paths, walk_tree, &walk_tree_ctx); |
379 | "", 0, 0, | ||
380 | &paths, walk_tree, &walk_tree_ctx); | ||
381 | if (walk_tree_ctx.state == 1) | 376 | if (walk_tree_ctx.state == 1) |
382 | ls_tail(); | 377 | ls_tail(); |
383 | else if (walk_tree_ctx.state == 2) | 378 | else if (walk_tree_ctx.state == 2) |