stash: drop dirty worktree check on apply
authorJeff King <peff@peff.net>
Tue, 5 Apr 2011 21:23:15 +0000 (17:23 -0400)
committerJunio C Hamano <gitster@pobox.com>
Wed, 6 Apr 2011 16:41:22 +0000 (09:41 -0700)
commite0e2a9cbfa938d0f1e9857d5ca5b196360663440
tree64fb74636a1e64564e5b6628a567c1f6316dc591
parentfa38cfc2c6ce197960f85798aac18ee78aa83f1f
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>
git-stash.sh
t/t3903-stash.sh