summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPiotr Krukowiecki <piotr.krukowiecki@gmail.com>2011-03-12 09:57:46 +0100
committerJunio C Hamano <gitster@pobox.com>2011-03-14 00:28:37 -0700
commit26b59b4812c81de09aa450ebbdf2bb0ea71c0dfd (patch)
tree75477b9672bb2571b595fd7aa021f2d5633d53c7
parentea2c69ed4728070be1d2ee953a6948398b859150 (diff)
downloadgit-26b59b4812c81de09aa450ebbdf2bb0ea71c0dfd.tar.gz
git stash: show status relative to current directory
git status shows modified paths relative to current directory, so it's possible to copy&paste them directly, even if you're in a subdirectory. But "git stash apply" always shows status from root of git repository. This is misleading because you can't use the paths without modifications. This is caused by changing directory to root of repository at the beginning of git stash. This patch makes git stash show status relative to current directory. Instead of removing the "cd to toplevel", which would affect whole script and might have other side-effects, the fix is to change directory temporarily back to original dir just before displaying status. Signed-off-by: Piotr Krukowiecki <piotr.krukowiecki@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-xgit-stash.sh3
1 files changed, 2 insertions, 1 deletions
diff --git a/git-stash.sh b/git-stash.sh
index 7561b374d2..b59c201162 100755
--- a/git-stash.sh
+++ b/git-stash.sh
@@ -12,6 +12,7 @@ USAGE="list [<options>]
SUBDIRECTORY_OK=Yes
OPTIONS_SPEC=
+START_DIR=`pwd`
. git-sh-setup
require_work_tree
cd_to_toplevel
@@ -394,7 +395,7 @@ apply_stash () {
then
squelch='>/dev/null 2>&1'
fi
- eval "git status $squelch" || :
+ (cd "$START_DIR" && eval "git status $squelch") || :
else
# Merge conflict; keep the exit status from merge-recursive
status=$?