diff options
author | Jeff King <peff@peff.net> | 2011-04-05 17:23:15 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-04-06 09:41:22 -0700 |
commit | e0e2a9cbfa938d0f1e9857d5ca5b196360663440 (patch) | |
tree | 64fb74636a1e64564e5b6628a567c1f6316dc591 /git-stash.sh | |
parent | fa38cfc2c6ce197960f85798aac18ee78aa83f1f (diff) | |
download | git-e0e2a9cbfa938d0f1e9857d5ca5b196360663440.tar.gz |
stash: drop dirty worktree check on apply
Before we apply a stash, we make sure there are no changes
in the worktree that are not in the index. This check dates
back to the original git-stash.sh, and is presumably
intended to prevent changes in the working tree from being
accidentally lost during the merge.
However, this check has two problems:
1. It is overly restrictive. If my stash changes only file
"foo", but "bar" is dirty in the working tree, it will
prevent us from applying the stash.
2. It is redundant. We don't touch the working tree at all
until we actually call merge-recursive. But it has its
own (much more accurate) checks to avoid losing working
tree data, and will abort the merge with a nicer
message telling us which paths were problems.
So we can simply drop the check entirely.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'git-stash.sh')
-rwxr-xr-x | git-stash.sh | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/git-stash.sh b/git-stash.sh index a305fb19f1..fbd4bc152d 100755 --- a/git-stash.sh +++ b/git-stash.sh @@ -344,9 +344,7 @@ apply_stash () { assert_stash_like "$@" - git update-index -q --refresh && - git diff-files --quiet --ignore-submodules || - die 'Cannot apply to a dirty working tree, please stage your changes' + git update-index -q --refresh || die 'unable to refresh index' # current index state c_tree=$(git write-tree) || |