restore: default to HEAD when combining --staged and --worktree
commit088018e34d705aad696acfeb624cfe5552ba256f
authorEric Sunshine <sunshine@sunshineco.com>
Tue, 5 May 2020 07:17:16 +0000 (5 03:17 -0400)
committerJunio C Hamano <gitster@pobox.com>
Tue, 5 May 2020 18:27:38 +0000 (5 11:27 -0700)
tree9b01540e27bf191fee28c00586eaba938dc1774e
parentaf6b65d45ef179ed52087e80cb089f6b2349f4ec
restore: default to HEAD when combining --staged and --worktree

By default, files are restored from the index for --worktree, and from
HEAD for --staged. When --worktree and --staged are combined, --source
must be specified to disambiguate the restore source[1], thus making it
cumbersome to restore a file in both the worktree and the index.

However, HEAD is also a reasonable default for --worktree when combined
with --staged, so make it the default anytime --staged is used (whether
combined with --worktree or not).

[1]: Due to an oversight, the --source requirement, though documented,
is not actually enforced.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Reviewed-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-restore.txt
builtin/checkout.c
t/t2070-restore.sh