[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