Re: [PATCH v7 4/6] stash: teach 'push' (and 'create_stash') to honor pathspec
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Feb 27, 2017, 20:32 UTC
- Message-ID
- <xmqqa897wf1c.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <20170225213306.2410-5-t.gummerer@gmail.com>
Thomas Gummerer <t.gummerer@gmail.com> writes:
Show 7 quoted lines
> if test -z "$patch_mode"
> then
> - git reset --hard ${GIT_QUIET:+-q}
> + if test $# != 0
> + then
> + git reset ${GIT_QUIET:+-q} -- "$@"
> + git checkout ${GIT_QUIET:+-q} HEAD -- $(git ls-files -z --modified "$@")"ls-files -z" on the command line?
Apparently new tests do not cover the correctness of this codepath.
I wonder if this
git ls-files -z --modified "$@" | git checkout-index -z --stdin
is what the above "checkout" wanted to do. The "reset" in the previous step presumably updated the index entries that match specified pathspec to those of the HEAD, so checking out the paths that match "$@" from the index would be the same as checking them out from the HEAD (while updating the index with them).
> + git clean --force ${GIT_QUIET:+-q} -d -- "$@"
> + else
> + git reset --hard ${GIT_QUIET:+-q}
> + fiThanks.