From: Piotr Krukowiecki Date: Sat, 12 Mar 2011 08:57:46 +0000 (+0100) Subject: git stash: show status relative to current directory X-Git-Tag: v1.7.5-rc0~32^2~1 X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=26b59b4812c81de09aa450ebbdf2bb0ea71c0dfd;p=git.git 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 Signed-off-by: Junio C Hamano --- diff --git a/git-stash.sh b/git-stash.sh index 7561b374d..b59c20116 100755 --- a/git-stash.sh +++ b/git-stash.sh @@ -12,6 +12,7 @@ USAGE="list [] 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=$?