Subject: Re: [PATCH 7/7] worktree: simplify prefixing paths

From: Junio C Hamano <[email-masked]>
Date: Tue, 10 May 2016 16:07:11 -0700

Nguyễn Thái Ngọc Duy  <[email-masked]> writes:

> Signed-off-by: Nguyễn Thái Ngọc Duy <[email-masked]>
> ---

This changes semantics, doesn't it?  prefix_filename() seems to do a
lot more than just strbuf_vadd("%s%s", prefix, filename); would do.

It may be a good change (e.g. turn '\' into '/' on Windows), but
this is way more than "simplify prefixing".  It is something else
whose effect needs to be explained.

>  builtin/worktree.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/builtin/worktree.c b/builtin/worktree.c
> index b53f802..f9dac37 100644
> --- a/builtin/worktree.c
> +++ b/builtin/worktree.c
> @@ -337,7 +337,7 @@ static int add(int ac, const char **av, const char *prefix)
>  	if (ac < 1 || ac > 2)
>  		usage_with_options(worktree_usage, options);
>  
> -	path = prefix ? prefix_filename(prefix, strlen(prefix), av[0]) : av[0];
> +	path = prefix_filename(prefix, strlen(prefix), av[0]);
>  	branch = ac < 2 ? "HEAD" : av[1];
>  
>  	opts.force_new_branch = !!new_branch_force;
> @@ -467,6 +467,8 @@ int cmd_worktree(int ac, const char **av, const char *prefix)
>  
>  	if (ac < 2)
>  		usage_with_options(worktree_usage, options);
> +	if (!prefix)
> +		prefix = "";
>  	if (!strcmp(av[1], "add"))
>  		return add(ac - 1, av + 1, prefix);
>  	if (!strcmp(av[1], "prune"))