[PATCH v2 1/1] git: preview for v2.3.0-rc0
list at eworm.de
list at eworm.de
Wed Jan 14 16:34:20 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 | 15 ++++++++-------
ui-plain.c | 16 ++++++++--------
ui-tree.c | 23 +++++++++++------------
6 files changed, 31 insertions(+), 31 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..4e29223 100644
--- a/ui-blob.c
+++ b/ui-blob.c
@@ -18,15 +18,16 @@ struct walk_tree_context {
int file_only:1;
};
-static int walk_tree(const unsigned char *sha1, const char *base, int baselen,
- const char *pathname, unsigned mode, int stage, void *cbdata)
+static int walk_tree_buf(const unsigned char *sha1, struct strbuf *base,
+ const char *pathname, unsigned mode, int stage,
+ void *cbdata)
{
struct walk_tree_context *walk_tree_ctx = cbdata;
if (walk_tree_ctx->file_only && !S_ISREG(mode))
return READ_TREE_RECURSIVE;
- if (strncmp(base, walk_tree_ctx->match_path, baselen)
- || strcmp(walk_tree_ctx->match_path + baselen, pathname))
+ if (strncmp(base->buf, walk_tree_ctx->match_path, base->len)
+ || strcmp(walk_tree_ctx->match_path + base->len, pathname))
return READ_TREE_RECURSIVE;
memmove(walk_tree_ctx->matched_sha1, sha1, 20);
walk_tree_ctx->found_path = 1;
@@ -56,7 +57,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 +88,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 +141,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..061180d 100644
--- a/ui-plain.c
+++ b/ui-plain.c
@@ -173,23 +173,23 @@ static void print_dir_tail(void)
html(" </ul>\n</body></html>\n");
}
-static int walk_tree(const unsigned char *sha1, const char *base, int baselen,
- const char *pathname, unsigned mode, int stage,
- void *cbdata)
+static int walk_tree_buf(const unsigned char *sha1, struct strbuf *base,
+ const char *pathname, unsigned mode, int stage,
+ void *cbdata)
{
struct walk_tree_context *walk_tree_ctx = cbdata;
- if (baselen == walk_tree_ctx->match_baselen) {
+ if (base->len == walk_tree_ctx->match_baselen) {
if (S_ISREG(mode)) {
if (print_object(sha1, pathname))
walk_tree_ctx->match = 1;
} else if (S_ISDIR(mode)) {
- print_dir(sha1, base, baselen, pathname);
+ print_dir(sha1, base->buf, base->len, pathname);
walk_tree_ctx->match = 2;
return READ_TREE_RECURSIVE;
}
- } else if (baselen > walk_tree_ctx->match_baselen) {
- print_dir_entry(sha1, base, baselen, pathname, mode);
+ } else if (base->len > walk_tree_ctx->match_baselen) {
+ print_dir_entry(sha1, base->buf, base->len, pathname, mode);
walk_tree_ctx->match = 2;
} else if (S_ISDIR(mode)) {
return READ_TREE_RECURSIVE;
@@ -243,7 +243,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..f30f0e3 100644
--- a/ui-tree.c
+++ b/ui-tree.c
@@ -121,9 +121,9 @@ static void print_object(const unsigned char *sha1, char *path, const char *base
}
-static int ls_item(const unsigned char *sha1, const char *base, int baselen,
- const char *pathname, unsigned int mode, int stage,
- void *cbdata)
+static int ls_item_buf(const unsigned char *sha1, struct strbuf *base,
+ const char *pathname, unsigned mode, int stage,
+ void *cbdata)
{
struct walk_tree_context *walk_tree_ctx = cbdata;
char *name;
@@ -211,21 +211,21 @@ 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();
}
-static int walk_tree(const unsigned char *sha1, const char *base, int baselen,
- const char *pathname, unsigned mode, int stage,
- void *cbdata)
+static int walk_tree_buf(const unsigned char *sha1, struct strbuf *base,
+ const char *pathname, unsigned mode, int stage,
+ void *cbdata)
{
struct walk_tree_context *walk_tree_ctx = cbdata;
static char buffer[PATH_MAX];
if (walk_tree_ctx->state == 0) {
- memcpy(buffer, base, baselen);
- strcpy(buffer + baselen, pathname);
+ memcpy(buffer, base->buf, base->len);
+ strcpy(buffer + base->len, pathname);
if (strcmp(walk_tree_ctx->match_path, buffer))
return READ_TREE_RECURSIVE;
@@ -238,11 +238,10 @@ static int walk_tree(const unsigned char *sha1, const char *base, int baselen,
return 0;
}
}
- ls_item(sha1, base, baselen, pathname, mode, stage, walk_tree_ctx);
+ ls_item_buf(sha1, base, pathname, mode, stage, walk_tree_ctx);
return 0;
}
-
/*
* Show a tree or a blob
* rev: the commit pointing at the root tree object
@@ -285,7 +284,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.2
More information about the CGit
mailing list