tree-diff: move all action-taking code out of compare_tree_entry()
[gitweb.git] / git-stash.sh
index 85c9e2c0817c171d67f7458a0764df8d31fb10ad..f0a94abf1434c65d27caf4cd674f89de62e9333c 100755 (executable)
@@ -195,7 +195,6 @@ save_stash () {
        keep_index=
        patch_mode=
        untracked=
-       force=
        while test $# != 0
        do
                case "$1" in
@@ -216,9 +215,6 @@ save_stash () {
                -u|--include-untracked)
                        untracked=untracked
                        ;;
-               -f|--force)
-                       force=t
-                       ;;
                -a|--all)
                        untracked=all
                        ;;
@@ -262,14 +258,6 @@ save_stash () {
                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")"
 
@@ -370,7 +358,7 @@ parse_flags_and_rev()
        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
@@ -388,7 +376,7 @@ parse_flags_and_rev()
                esac
        done
 
-       set -- $REV
+       eval set -- $REV
 
        case $# in
                0)
@@ -403,13 +391,13 @@ parse_flags_and_rev()
                ;;
        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 &&
@@ -420,8 +408,8 @@ parse_flags_and_rev()
        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()