@matheusbsbs / matheus-bagliano / commits / 26b59b4812
Fork 0

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>

Piotr Krukowiecki committed Mar 12, 2011 at 09:57 UTC 26b59b4812c81de09aa450ebbdf2bb0ea71c0dfd
1 file changed +2 -1
git-stash.sh
+2 -1
@@ -12,6 +12,7 @@ USAGE="list [<options>]
12
13 SUBDIRECTORY_OK=Yes
14 OPTIONS_SPEC=
15 +START_DIR=`pwd`
16 . git-sh-setup
17 require_work_tree
18 cd_to_toplevel
@@ -394,7 +395,7 @@ apply_stash () {
395 then
396 squelch='>/dev/null 2>&1'
397 fi
397 - eval "git status $squelch" || :
398 + (cd "$START_DIR" && eval "git status $squelch") || :
399 else
400 # Merge conflict; keep the exit status from merge-recursive
401 status=$?