Thanks for review, attaching patch with updated commit message. W dniu 11.03.2011 23:32, Jeff King pisze: > On Fri, Mar 11, 2011 at 09:49:13PM +0100, Piotr Krukowiecki wrote: > >> But "git stash apply" shows status from root of git repository. >> This is misleading because you can't copy and paste the paths. > > Yeah, I am inclined to call it a bug. git-status will show the status of > the whole tree from wherever you are, and people who want full paths > will have status.relativePaths turned off, anyway. So I think your > proposed semantics are more natural. I think it's better this way too, one thing that made me doubt if this is intended or not is fact that git-commit also shows paths relative to root dir... >> This patch tries to fix git-stash.sh to show status relative to >> current directory. I can resend the patch with better commit message. > > Yes, please. There is lots of nice discussion in your email but none of > it in the commit message. :) Didn't want to duplicate ;) > >> diff --git a/git-stash.sh b/git-stash.sh >> index 7561b37..586c12f 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=$? > > This fix looks reasonable to me. The other option would be to avoid > cd_to_toplevel at the beginning (which I am not sure why we really need > in the first place, but presumably some code paths rely on it), but it's > probably not worth the risk of introducing new confusing bugs. > > -Peff ---8<--- From: Piotr Krukowiecki <piotr.krukowiecki@xxxxxxxxx> Date: Fri, 11 Mar 2011 20:50:49 +0100 Subject: [PATCH] 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@xxxxxxxxx> --- git-stash.sh | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/git-stash.sh b/git-stash.sh index 7561b37..b59c201 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=$? -- 1.7.4.1.228.g9e388 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html