On Sun, Dec 9, 2018 at 12:05 PM Thomas Gummerer <t.gummerer@xxxxxxxxx> wrote: > > Now that we have 'git checkout --no-overlay', we can use it in git > stash, making the codepaths for 'git stash push' with and without > pathspec more similar, and thus easier to follow. > > Signed-off-by: Thomas Gummerer <t.gummerer@xxxxxxxxx> > --- > > As mentioned in the cover letter, not sure if we want to apply this > now. There are two reasons I did this: > - Showing the new functionality of git checkout > - Increased test coverage, as we are running the new code with all git > stash tests for free, which helped look at some cases that I was > missing initially. > > git-stash.sh | 12 ++++-------- > 1 file changed, 4 insertions(+), 8 deletions(-) > > diff --git a/git-stash.sh b/git-stash.sh > index 94793c1a91..67be04d996 100755 > --- a/git-stash.sh > +++ b/git-stash.sh > @@ -314,19 +314,15 @@ push_stash () { > > if test -z "$patch_mode" > then > - test "$untracked" = "all" && CLEAN_X_OPTION=-x || CLEAN_X_OPTION= > - if test -n "$untracked" && test $# = 0 > + test "$untracked" = "all" && CLEAN_X_OPTION=-X || CLEAN_X_OPTION= > + if test -n "$untracked" > then > - git clean --force --quiet -d $CLEAN_X_OPTION > + git clean --force --quiet -d $CLEAN_X_OPTION -- "$@" > fi > > if test $# != 0 > then > - test -z "$untracked" && UPDATE_OPTION="-u" || UPDATE_OPTION= > - test "$untracked" = "all" && FORCE_OPTION="--force" || FORCE_OPTION= > - git add $UPDATE_OPTION $FORCE_OPTION -- "$@" > - git diff-index -p --cached --binary HEAD -- "$@" | > - git apply --index -R > + git checkout --quiet --no-overlay --ignore-unmatched HEAD -- "$@" Nice. :-)