Re: [PATCH 1/1] git: preview for v2.3.0-rc0

2015-01-13 Thread John Keeping
On Tue, Jan 13, 2015 at 10:57:39AM +0100, Christian Hesse wrote:
> John Keeping  on Tue, 2015/01/13 09:43:
> > On Tue, Jan 13, 2015 at 09:56:47AM +0100, l...@eworm.de wrote:
> > > From: Christian Hesse 
> > > 
> > > * 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 
> > > ---
> > > [...]
> > 
> > Is there any benefit to introducing a new function here?  In other
> > words, is walk_tree() used anywhere else?  If not, wouldn't it be
> > simpler to update the signature of the existing function?
> > 
> > (The same comment applies to several other places below.)
> 
> I just adopted the changes from git upstream to make things work. This is not
> intended for merge... And I will take a closer look for final patch when
> git v2.3.0 arrives. ;)
> 
> Our code include three functions called 'walk_tree()' in ui-plain.c,
> ui-blob.c and ui-tree.c. Can this bring any trouble?

They're all static so they're limited to the files in which they're
declared.  The names won't appear in the final binary at all (except in
debug annotations).
___
CGit mailing list
CGit@lists.zx2c4.com
http://lists.zx2c4.com/mailman/listinfo/cgit


Re: [PATCH 1/1] git: preview for v2.3.0-rc0

2015-01-13 Thread Christian Hesse
John Keeping  on Tue, 2015/01/13 09:43:
> On Tue, Jan 13, 2015 at 09:56:47AM +0100, l...@eworm.de wrote:
> > From: Christian Hesse 
> > 
> > * 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 
> > ---
> > [...]
> 
> Is there any benefit to introducing a new function here?  In other
> words, is walk_tree() used anywhere else?  If not, wouldn't it be
> simpler to update the signature of the existing function?
> 
> (The same comment applies to several other places below.)

I just adopted the changes from git upstream to make things work. This is not
intended for merge... And I will take a closer look for final patch when
git v2.3.0 arrives. ;)

Our code include three functions called 'walk_tree()' in ui-plain.c,
ui-blob.c and ui-tree.c. Can this bring any trouble?
-- 
main(a){char*c=/*Schoene Gruesse */"B?IJj;MEH"
"CX:;",b;for(a/*Chris   get my mail address:*/=0;b=c[a++];)
putchar(b-1/(/*   gcc -o sig sig.c && ./sig*/b/42*2-3)*42);}


pgpyBcLIoBPYY.pgp
Description: OpenPGP digital signature
___
CGit mailing list
CGit@lists.zx2c4.com
http://lists.zx2c4.com/mailman/listinfo/cgit


Re: [PATCH 1/1] git: preview for v2.3.0-rc0

2015-01-13 Thread John Keeping
On Tue, Jan 13, 2015 at 09:56:47AM +0100, l...@eworm.de wrote:
> From: Christian Hesse 
> 
> * 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 
> ---
>  Makefile   |  4 ++--
>  cgit.c |  2 +-
>  git|  2 +-
>  ui-blob.c  | 14 +++---
>  ui-plain.c | 10 +-
>  ui-tree.c  | 21 +++--
>  6 files changed, 43 insertions(+), 10 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 = 
> -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 16
> --- a/git
> +++ b/git
> @@ -1 +1 @@
> -Subproject commit 9b7cbb315923e61bb0c4297c701089f30e116750
> +Subproject commit addfb21a94fb4e6b9d07b270f7bb3748767a8f38
> diff --git a/ui-blob.c b/ui-blob.c
> index c2de8d6..90fcf81 100644
> --- a/ui-blob.c
> +++ b/ui-blob.c
> @@ -33,6 +33,14 @@ static int walk_tree(const unsigned char *sha1, const char 
> *base, int baselen,
>   return 0;
>  }
>  
> +static int walk_tree_buf(const unsigned char *sha1, struct strbuf *base,
> + const char *filename, unsigned mode, int stage,
> + void *context)
> +{
> + return walk_tree(sha1, base->buf, base->len,
> + filename, mode, stage, context);
> +}
> +

Is there any benefit to introducing a new function here?  In other
words, is walk_tree() used anywhere else?  If not, wouldn't it be
simpler to update the signature of the existing function?

(The same comment applies to several other places below.)

>  int cgit_ref_path_exists(const char *path, const char *ref, int file_only)
>  {
>   unsigned char sha1[20];
> @@ -56,7 +64,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 +95,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 +148,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..891e9f7 100644
> --- a/ui-plain.c
> +++ b/ui-plain.c
> @@ -198,6 +198,14 @@ static int walk_tree(const unsigned char *sha1, const 
> char *base, int baselen,
>   return 0;
>  }
>  
> +static int walk_tree_buf(const unsigned char *sha1, struct strbuf *base,
> + const char *filename, unsigned mode, int stage,
> + void *context)
> +{
> + return walk_tree(sha1, base->buf, base->len,
> + filename, mode, stage, context);
> +}
> +
>  static int basedir_len(const char *path)
>  {
>   char *p = strrchr(path, '/');
> @@ -243,7 +251,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, 
> &wal