[PATCH v2 1/1] git: preview for v2.3.0-rc0
John Keeping
john at keeping.me.uk
Thu Jan 15 23:01:42 CET 2015
On Wed, Jan 14, 2015 at 04:34:20PM +0100, list at eworm.de wrote:
> 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)
This seems unnecessarily noisy. The patch would be easier to read if
the function name stays the same and you avoid re-wrapping the
parameters. It would also remove several of the hunks below because the
call sites won't need to change.
> {
> 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();
More information about the CGit
mailing list