Re: [PATCH v2 1/1] reset: parse rev as tree-ish in patch mode
"Nika Layzell via GitGitGadget" <gitgitgadget@gmail.com> writes:
Show 21 quoted lines
> From: Nika Layzell <nika@thelayzells.com>
>
> Since 2f328c3d ("reset $sha1 $pathspec: require $sha1 only to be
> treeish", 2013-01-14), we allowed "git reset $object -- $path" to reset
> individual paths that match the pathspec to take the blob from a tree
> object, not necessarily a commit, while the form to reset the tip of the
> current branch to some other commit still must be given a commit.
>
> Like resetting with paths, "git reset --patch" does not update HEAD, and
> need not require a commit. The path-filtered form, "git reset --patch
> $object -- $pathspec", has accepted a tree-ish since 2f328c3d.
>
> "git reset --patch" is documented as accepting a <tree-ish> since
> bf44142f ("reset: update documentation to require only tree-ish with
> paths", 2013-01-16). Documentation changes are not required.
>
> Loosen the restriction that requires a commit for the unfiltered "git
> reset --patch $object".
>
> Signed-off-by: Nika Layzell <nika@thelayzells.com>
> ---Show 28 quoted lines
> diff --git a/t/t7105-reset-patch.sh b/t/t7105-reset-patch.sh
> index bd10a96727..fc2a6cf5c7 100755
> --- a/t/t7105-reset-patch.sh
> +++ b/t/t7105-reset-patch.sh
> @@ -38,6 +38,27 @@ test_expect_success PERL 'git reset -p HEAD^' '
> test_i18ngrep "Apply" output
> '
>
> +test_expect_success PERL 'git reset -p HEAD^^{tree}' '
> + test_write_lines n y | git reset -p HEAD^^{tree} >output &&
> + verify_state dir/foo work parent &&
> + verify_saved_state bar &&
> + test_i18ngrep "Apply" output
> +'
> +
> +test_expect_success PERL 'git reset -p HEAD^:dir/foo (blob fails)' '
> + set_and_save_state dir/foo work work &&
> + test_must_fail git reset -p HEAD^:dir/foo &&
> + verify_saved_state dir/foo &&
> + verify_saved_state bar
> +'
> +
> +test_expect_success PERL 'git reset -p aaaaaaaa (unknown fails)' '
> + set_and_save_state dir/foo work work &&
> + test_must_fail git reset -p aaaaaaaa &&
> + verify_saved_state dir/foo &&
> + verify_saved_state bar
> +'