completion: tab completion of filenames for 'git restore'

If no --args are present after 'git restore', it assumes that you
want to tab-complete one of the files with unstaged uncommitted
changes.

If a file has been staged, we don't want to list it, as restoring those
requires a slightly more complex `git restore --staged`, so we only list
those files that are --modified. While --committable also looks like
a good candidate, that includes changes that have been staged.

Signed-off-by: David Cantrell <david@cantrell.org.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
David Cantrell 2022-03-15 22:13:57 +00:00 committed by Junio C Hamano
parent b896f729e2
commit 841fd28ce2

View file

@ -2890,6 +2890,10 @@ _git_restore ()
--*)
__gitcomp_builtin restore
;;
*)
if __git rev-parse --verify --quiet HEAD >/dev/null; then
__git_complete_index_file "--modified"
fi
esac
}