• Jeff King's avatar
    stash: require a clean index to apply · ed178ef1
    Jeff King authored
    If you have staged contents in your index and run "stash
    apply", we may hit a conflict and put new entries into the
    index. Recovering to your original state is difficult at
    that point, because tools like "git reset --keep" will blow
    away anything staged.  We can make this safer by refusing to
    apply when there are staged changes.
    It's possible we could provide better tooling here, as "git
    stash apply" should be writing only conflicts to the index
    (so we know that any stage-0 entries are potentially
    precious). But it is the odd duck; most "mergy" commands
    will update the index for cleanly merged entries, and it is
    not worth updating our tooling to support this use case
    which is unlikely to be of interest (besides which, we would
    still need to block a dirty index for "stash apply --index",
    since that case _would_ be ambiguous).
    Signed-off-by: default avatarJeff King <peff@peff.net>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
git-stash.sh 13.4 KB