mirror of
https://github.com/git/git.git
synced 2026-04-14 02:40:08 +02:00
Just like with other Git commands, this option makes it read the paths from the standard input. It comes in handy when resetting many, many paths at once and wildcards are not an option (e.g. when the paths are generated by a tool). Note: we first parse the entire list and perform the actual reset action only in a second phase. Not only does this make things simpler, it also helps performance, as do_diff_cache() traverses the index and the (sorted) pathspecs in simultaneously to avoid unnecessary lookups. This feature is marked experimental because it is still under review in the upstream Git project. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
33 lines
777 B
Bash
Executable File
33 lines
777 B
Bash
Executable File
#!/bin/sh
|
|
|
|
test_description='reset --stdin'
|
|
|
|
. ./test-lib.sh
|
|
|
|
test_expect_success 'reset --stdin' '
|
|
test_commit hello &&
|
|
git rm hello.t &&
|
|
test -z "$(git ls-files hello.t)" &&
|
|
echo hello.t | git reset --stdin &&
|
|
test hello.t = "$(git ls-files hello.t)"
|
|
'
|
|
|
|
test_expect_success 'reset --stdin -z' '
|
|
test_commit world &&
|
|
git rm hello.t world.t &&
|
|
test -z "$(git ls-files hello.t world.t)" &&
|
|
printf world.tQworld.tQhello.tQ | q_to_nul | git reset --stdin -z &&
|
|
printf "hello.t\nworld.t\n" >expect &&
|
|
git ls-files >actual &&
|
|
test_cmp expect actual
|
|
'
|
|
|
|
test_expect_success '--stdin requires --mixed' '
|
|
echo hello.t >list &&
|
|
test_must_fail git reset --soft --stdin <list &&
|
|
test_must_fail git reset --hard --stdin <list &&
|
|
git reset --mixed --stdin <list
|
|
'
|
|
|
|
test_done
|