START_DIR=$(pwd)
. git-sh-setup
require_work_tree
+prefix=$(git rev-parse --show-prefix) || exit 1
cd_to_toplevel
TMP="$GIT_DIR/.git-stash.$$"
shift
done
+ eval "set $(git rev-parse --sq --prefix "$prefix" -- "$@")"
+
if test -n "$patch_mode" && test -n "$untracked"
then
die "$(gettext "Can't use --patch and --include-untracked or --all at the same time")"
then
if test $# != 0
then
- git reset ${GIT_QUIET:+-q} -- "$@"
+ git reset -q -- "$@"
git ls-files -z --modified -- "$@" |
git checkout-index -z --force --stdin
- git clean --force ${GIT_QUIET:+-q} -d -- "$@"
+ git clean --force -q -d -- "$@"
else
- git reset --hard ${GIT_QUIET:+-q}
+ git reset --hard -q
fi
test "$untracked" = "all" && CLEAN_X_OPTION=-x || CLEAN_X_OPTION=
if test -n "$untracked"
if test "$keep_index" = "t" && test -n "$i_tree"
then
- git read-tree --reset -u $i_tree
+ git read-tree --reset $i_tree
+ git ls-files -z --modified -- "$@" |
+ git checkout-index -z --force --stdin
fi
else
git apply -R < "$TMP-patch" ||
if test "$keep_index" != "t"
then
- git reset
+ git reset -q -- "$@"
fi
fi
}