Subject: Re: [PATCH v2] worktree: add: fix 'post-checkout' not knowing new worktree location

From: Eric Sunshine <[email-masked]>
Date: Thu, 15 Feb 2018 16:27:51 -0500

On Thu, Feb 15, 2018 at 12:52:11PM -0800, Junio C Hamano wrote:
> Eric Sunshine <[email-masked]> writes:
> >  test_expect_success '"add" invokes post-checkout hook (branch)' '
> >  	post_checkout_hook &&
> > -	printf "%s %s 1\n" $_z40 $(git rev-parse HEAD) >hook.expect &&
> > +	{
> > +		echo $_z40 $(git rev-parse HEAD) 1 &&
> > +		echo $(pwd)/.git/worktrees/gumby &&
> > +		echo $(pwd)/gumby
> > +	} >hook.expect &&
> >  	git worktree add gumby &&
> > -	test_cmp hook.expect hook.actual
> > +	test_cmp hook.expect gumby/hook.actual
> >  '
> 
> This seems to segfault on me, without leaving hook.actual anywhere.

I'm unable to reproduce the segfault, but I'm guessing it's because
I'm a dummy. Can you squash in the following and retry?

--- >8 ---
diff --git a/builtin/worktree.c b/builtin/worktree.c
index 604a0292b0..f69f862947 100644
--- a/builtin/worktree.c
+++ b/builtin/worktree.c
@@ -348,7 +348,7 @@ static int add_worktree(const char *path, const char *refname,
 	if (!ret && opts->checkout) {
 		const char *hook = find_hook("post-checkout");
 		if (hook) {
-			const char *env[] = { "GIT_DIR", "GIT_WORK_TREE" };
+			const char *env[] = { "GIT_DIR", "GIT_WORK_TREE", NULL };
 			cp.git_cmd = 0;
 			cp.no_stdin = 1;
 			cp.stdout_to_stderr = 1;
--- >8 ---

If that fixes it, can you squash it locally or should I re-send?