diff options
author | Thomas Gummerer <t.gummerer@gmail.com> | 2019-01-09 00:52:24 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2019-01-09 01:49:28 +0300 |
commit | 091e04bc8cbb0c89c8112c4784f02a44decc257e (patch) | |
tree | f72dbe0c834e26a998196a749795ea7b70df53d9 /t/t9902-completion.sh | |
parent | b7033e73b7b671670160726f62ac16d88161e3d0 (diff) |
checkout: introduce --{,no-}overlay option
Currently 'git checkout' is defined as an overlay operation, which
means that if in 'git checkout <tree-ish> -- [<pathspec>]' we have an
entry in the index that matches <pathspec>, but that doesn't exist in
<tree-ish>, that entry will not be removed from the index or the
working tree.
Introduce a new --{,no-}overlay option, which allows using 'git
checkout' in non-overlay mode, thus removing files from the working
tree if they do not exist in <tree-ish> but match <pathspec>.
Note that 'git checkout -p <tree-ish> -- [<pathspec>]' already works
this way, so no changes are needed for the patch mode. We disallow
'git checkout --overlay -p' to avoid confusing users who would expect
to be able to force overlay mode in 'git checkout -p' this way.
Untracked files are not affected by this change, so 'git checkout
--no-overlay HEAD -- untracked' will not remove untracked from the
working tree. This is so e.g. 'git checkout --no-overlay HEAD -- dir/'
doesn't delete all untracked files in dir/, but rather just resets the
state of files that are known to git.
Suggested-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Thomas Gummerer <t.gummerer@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t9902-completion.sh')
-rwxr-xr-x | t/t9902-completion.sh | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh index d01ad8eb25..5758fffa0d 100755 --- a/t/t9902-completion.sh +++ b/t/t9902-completion.sh @@ -1436,6 +1436,7 @@ test_expect_success 'double dash "git checkout"' ' --progress Z --no-quiet Z --no-... Z + --overlay Z EOF ' |