keep_index=
patch_mode=
untracked=
- force=
while test $# != 0
do
case "$1" in
-u|--include-untracked)
untracked=untracked
;;
- -f|--force)
- force=t
- ;;
-a|--all)
untracked=all
;;
say "$(gettext "No local changes to save")"
exit 0
fi
- if test -z "$untracked$force" &&
- test -n "$(git ls-files --killed | head -n 1)"
- then
- say "$(gettext "The following untracked files would NOT be saved but need to be removed by stash save:")"
- test -n "$GIT_QUIET" || git ls-files --killed | sed 's/^/\t/'
- say "$(gettext "Aborting. Consider using either the --force or --include-untracked option.")" >&2
- exit 1
- fi
test -f "$GIT_DIR/logs/$ref_stash" ||
clear_stash || die "$(gettext "Cannot initialize stash")"
i_tree=
u_tree=
- REV=$(git rev-parse --no-flags --symbolic "$@") || exit 1
+ REV=$(git rev-parse --no-flags --symbolic --sq "$@") || exit 1
FLAGS=
for opt
esac
done
- set -- $REV
+ eval set -- $REV
case $# in
0)
;;
esac
- REV=$(git rev-parse --quiet --symbolic --verify $1 2>/dev/null) || {
+ REV=$(git rev-parse --quiet --symbolic --verify "$1" 2>/dev/null) || {
reference="$1"
die "$(eval_gettext "\$reference is not valid reference")"
}
- i_commit=$(git rev-parse --quiet --verify $REV^2 2>/dev/null) &&
- set -- $(git rev-parse $REV $REV^1 $REV: $REV^1: $REV^2: 2>/dev/null) &&
+ i_commit=$(git rev-parse --quiet --verify "$REV^2" 2>/dev/null) &&
+ set -- $(git rev-parse "$REV" "$REV^1" "$REV:" "$REV^1:" "$REV^2:" 2>/dev/null) &&
s=$1 &&
w_commit=$1 &&
b_commit=$2 &&
test "$ref_stash" = "$(git rev-parse --symbolic-full-name "${REV%@*}")" &&
IS_STASH_REF=t
- u_commit=$(git rev-parse --quiet --verify $REV^3 2>/dev/null) &&
- u_tree=$(git rev-parse $REV^3: 2>/dev/null)
+ u_commit=$(git rev-parse --quiet --verify "$REV^3" 2>/dev/null) &&
+ u_tree=$(git rev-parse "$REV^3:" 2>/dev/null)
}
is_stash_like()