From: Eric Sunshine Date: Tue, 07 Jul 2015 01:33:01 GMT Subject: Re: [PATCH v3 22/23] worktree: add: auto-vivify new branch when is omitted Message-ID: <20150707013301.GA26523@flurp.local> In-Reply-To: On Mon, Jul 06, 2015 at 12:19:14PM -0700, Junio C Hamano wrote: > Eric Sunshine writes: > > diff --git a/Documentation/git-worktree.txt b/Documentation/git-worktree.txt > > index 377ae0f..da71f50 100644 > > --- a/Documentation/git-worktree.txt > > +++ b/Documentation/git-worktree.txt > > @@ -9,7 +9,7 @@ git-worktree - Manage multiple worktrees > > SYNOPSIS > > -------- > > [verse] > > -'git worktree add' [-f] [--detach] [-b ] > > +'git worktree add' [-f] [--detach] [-b ] [] > > Ahh, OK, this answers my previous question. Right. I considered squashing this patch with the previous one, in which case the synopsis question wouldn't have come up, but kept them separate since they are (or can be) conceptually distinct, and the one patch builds upon the other (and keeping them separate makes them a bit easier to review). > > + if (ac < 2 && !new_branch && !new_branch_force) { > > + int n; > > + const char *s = worktree_basename(path, &n); > > + new_branch = xstrndup(s, n); > > + } > > + > > and because this is new_branch, not new_branch_force, we will not > accidentally clobber an existing branch. The "hotfix" time is when > the end-user tends to be less careful, and it is a good thing to > make sure "git worktree add ../hotfix" will not clobber an unrelated > "hotfix" branch. > > Good. > > Which may be something we would want to have a test for, though. Good idea. How about the following as a squash-in? --- 8< --- From: Eric Sunshine Subject: [PATCH] fixup! worktree: add: auto-vivify new branch when is omitted --- t/t2025-worktree-add.sh | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/t/t2025-worktree-add.sh b/t/t2025-worktree-add.sh index 8fe242f..ead8aa2 100755 --- a/t/t2025-worktree-add.sh +++ b/t/t2025-worktree-add.sh @@ -150,4 +150,13 @@ test_expect_success '"add" with omitted' ' test_cmp_rev HEAD bat ' +test_expect_success '"add" auto-vivify does not clobber existing branch' ' + test_commit c1 && + test_commit c2 && + git branch precious HEAD~1 && + test_must_fail git worktree add precious && + test_cmp_rev HEAD~1 precious && + test_path_is_missing precious +' + test_done -- 2.5.0.rc1.201.ga12d9f8