diff --relative: output paths as relative to the current subdirectory
[gitweb.git] / git-stash.sh
index f16fd9c3c0e5b9248623d1d65146504c603fc840..b00f8881693ff09516ea058816dc96697ca56483 100755 (executable)
@@ -20,6 +20,10 @@ no_changes () {
 }
 
 clear_stash () {
+       if test $# != 0
+       then
+               die "git stash clear with parameters is unimplemented"
+       fi
        if current=$(git rev-parse --verify $ref_stash 2>/dev/null)
        then
                git update-ref -d $ref_stash $current
@@ -86,7 +90,7 @@ save_stash () {
 
        if no_changes
        then
-               echo >&2 'No local changes to save'
+               echo 'No local changes to save'
                exit 0
        fi
        test -f "$GIT_DIR/logs/$ref_stash" ||
@@ -99,7 +103,7 @@ save_stash () {
 
        git update-ref -m "$stash_msg" $ref_stash $w_commit ||
                die "Cannot save the current status"
-       printf >&2 'Saved "%s"\n' "$stash_msg"
+       printf 'Saved working directory and index state "%s"\n' "$stash_msg"
 }
 
 have_stash () {
@@ -216,7 +220,8 @@ apply)
        apply_stash "$@"
        ;;
 clear)
-       clear_stash
+       shift
+       clear_stash "$@"
        ;;
 create)
        if test $# -gt 0 && test "$1" = create
@@ -228,7 +233,9 @@ create)
 *)
        if test $# -eq 0
        then
-               save_stash && git-reset --hard
+               save_stash &&
+               echo '(To restore them type "git stash apply")' &&
+               git-reset --hard
        else
                usage
        fi