worktree: make add <path> <branch> dwim
authorThomas Gummerer <t.gummerer@gmail.com>
Sun, 26 Nov 2017 19:43:54 +0000 (19:43 +0000)
committerJunio C Hamano <gitster@pobox.com>
Mon, 27 Nov 2017 00:48:06 +0000 (09:48 +0900)
commit4e8533319760c1e9255c56c2059c721286dc8dab
treea48af6db7db7ccdee2fd262a21edbb198a0e18f8
parente284e892ca278e4eb1e7eabd53a000bc897c3f25
worktree: make add <path> <branch> dwim

Currently 'git worktree add <path> <branch>', errors out when 'branch'
is not a local branch.  It has no additional dwim'ing features that one
might expect.

Make it behave more like 'git checkout <branch>' when the branch doesn't
exist locally, but a remote tracking branch uniquely matches the desired
branch name, i.e. create a new branch from the remote tracking branch
and set the upstream to the remote tracking branch.

As 'git worktree add' currently just dies in this situation, there are
no backwards compatibility worries when introducing this feature.

Signed-off-by: Thomas Gummerer <t.gummerer@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-worktree.txt
builtin/worktree.c
t/t2025-worktree-add.sh