reset: parse rev as tree-ish in patch mode
authorNika Layzell <nika@thelayzells.com>
Sun, 24 Nov 2019 20:25:49 +0000 (20:25 +0000)
committerJunio C Hamano <gitster@pobox.com>
Mon, 25 Nov 2019 02:01:22 +0000 (11:01 +0900)
commit0a8e3036a304d99de24432d65a3d3920dd6e2e46
tree86f62e83756ab1e1b94c49f2e6201b1b952ec8e9
parentd9f6f3b6195a0ca35642561e530798ad1469bd41
reset: parse rev as tree-ish in patch mode

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>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/reset.c
t/t7105-reset-patch.sh