Test update to improve coverage for "git stash" operations.
* jt/stash-tests:
stash: add a test for stashing in a detached state
stash: add a test for when apply fails during stash branch
stash: add a test for stash create with no files
@ -444,6 +444,14 @@ test_expect_failure 'stash file to directory' '
@@ -444,6 +444,14 @@ test_expect_failure 'stash file to directory' '
test foo = "$(cat file/file)"
'
test_expect_success 'stash create - no changes' '
git stash clear &&
test_when_finished "git reset --hard HEAD" &&
git reset --hard &&
git stash create >actual &&
test_must_be_empty actual
'
test_expect_success 'stash branch - no stashes on stack, stash-like argument' '
git stash clear &&
test_when_finished "git reset --hard HEAD" &&
@ -648,6 +656,20 @@ test_expect_success 'stash branch should not drop the stash if the branch exists
@@ -648,6 +656,20 @@ test_expect_success 'stash branch should not drop the stash if the branch exists
git rev-parse stash@{0} --
'
test_expect_success 'stash branch should not drop the stash if the apply fails' '
test_expect_success 'stash apply shows status same as git status (relative to current directory)' '
git stash clear &&
echo 1 >subdir/subfile1 &&
@ -800,6 +822,18 @@ test_expect_success 'create with multiple arguments for the message' '
@@ -800,6 +822,18 @@ test_expect_success 'create with multiple arguments for the message' '
test_cmp expect actual
'
test_expect_success 'create in a detached state' '
test_when_finished "git checkout master" &&
git checkout HEAD~1 &&
>foo &&
git add foo &&
STASH_ID=$(git stash create) &&
HEAD_ID=$(git rev-parse --short HEAD) &&
echo "WIP on (no branch): ${HEAD_ID} initial" >expect &&
git show --pretty=%s -s ${STASH_ID} >actual &&
test_cmp expect actual
'
test_expect_success 'stash -- <pathspec> stashes and restores the file' '