diff options
Diffstat (limited to 'third_party/git/t/t3905-stash-include-untracked.sh')
-rwxr-xr-x | third_party/git/t/t3905-stash-include-untracked.sh | 292 |
1 files changed, 0 insertions, 292 deletions
diff --git a/third_party/git/t/t3905-stash-include-untracked.sh b/third_party/git/t/t3905-stash-include-untracked.sh deleted file mode 100755 index f075c7f1f316..000000000000 --- a/third_party/git/t/t3905-stash-include-untracked.sh +++ /dev/null @@ -1,292 +0,0 @@ -#!/bin/sh -# -# Copyright (c) 2011 David Caldwell -# - -test_description='Test git stash --include-untracked' - -. ./test-lib.sh - -test_expect_success 'stash save --include-untracked some dirty working directory' ' - echo 1 > file && - git add file && - test_tick && - git commit -m initial && - echo 2 > file && - git add file && - echo 3 > file && - test_tick && - echo 1 > file2 && - echo 1 > HEAD && - mkdir untracked && - echo untracked >untracked/untracked && - git stash --include-untracked && - git diff-files --quiet && - git diff-index --cached --quiet HEAD -' - -cat > expect <<EOF -?? actual -?? expect -EOF - -test_expect_success 'stash save --include-untracked cleaned the untracked files' ' - git status --porcelain >actual && - test_cmp expect actual -' - -tracked=$(git rev-parse --short $(echo 1 | git hash-object --stdin)) -untracked=$(git rev-parse --short $(echo untracked | git hash-object --stdin)) -cat > expect.diff <<EOF -diff --git a/HEAD b/HEAD -new file mode 100644 -index 0000000..$tracked ---- /dev/null -+++ b/HEAD -@@ -0,0 +1 @@ -+1 -diff --git a/file2 b/file2 -new file mode 100644 -index 0000000..$tracked ---- /dev/null -+++ b/file2 -@@ -0,0 +1 @@ -+1 -diff --git a/untracked/untracked b/untracked/untracked -new file mode 100644 -index 0000000..$untracked ---- /dev/null -+++ b/untracked/untracked -@@ -0,0 +1 @@ -+untracked -EOF -cat > expect.lstree <<EOF -HEAD -file2 -untracked -EOF - -test_expect_success 'stash save --include-untracked stashed the untracked files' ' - test_path_is_missing file2 && - test_path_is_missing untracked && - test_path_is_missing HEAD && - git diff HEAD stash^3 -- HEAD file2 untracked >actual && - test_cmp expect.diff actual && - git ls-tree --name-only stash^3: >actual && - test_cmp expect.lstree actual -' -test_expect_success 'stash save --patch --include-untracked fails' ' - test_must_fail git stash --patch --include-untracked -' - -test_expect_success 'stash save --patch --all fails' ' - test_must_fail git stash --patch --all -' - -git clean --force --quiet - -cat > expect <<EOF - M file -?? HEAD -?? actual -?? expect -?? file2 -?? untracked/ -EOF - -test_expect_success 'stash pop after save --include-untracked leaves files untracked again' ' - git stash pop && - git status --porcelain >actual && - test_cmp expect actual && - test "1" = "$(cat file2)" && - test untracked = "$(cat untracked/untracked)" -' - -git clean --force --quiet -d - -test_expect_success 'stash save -u dirty index' ' - echo 4 > file3 && - git add file3 && - test_tick && - git stash -u -' - -blob=$(git rev-parse --short $(echo 4 | git hash-object --stdin)) -cat > expect <<EOF -diff --git a/file3 b/file3 -new file mode 100644 -index 0000000..$blob ---- /dev/null -+++ b/file3 -@@ -0,0 +1 @@ -+4 -EOF - -test_expect_success 'stash save --include-untracked dirty index got stashed' ' - git stash pop --index && - git diff --cached >actual && - test_cmp expect actual -' - -git reset > /dev/null - -# Must direct output somewhere where it won't be considered an untracked file -test_expect_success 'stash save --include-untracked -q is quiet' ' - echo 1 > file5 && - git stash save --include-untracked --quiet > .git/stash-output.out 2>&1 && - test_line_count = 0 .git/stash-output.out && - rm -f .git/stash-output.out -' - -test_expect_success 'stash save --include-untracked removed files' ' - rm -f file && - git stash save --include-untracked && - echo 1 > expect && - test_cmp expect file -' - -rm -f expect - -test_expect_success 'stash save --include-untracked removed files got stashed' ' - git stash pop && - test_path_is_missing file -' - -cat > .gitignore <<EOF -.gitignore -ignored -ignored.d/ -EOF - -test_expect_success 'stash save --include-untracked respects .gitignore' ' - echo ignored > ignored && - mkdir ignored.d && - echo ignored >ignored.d/untracked && - git stash -u && - test -s ignored && - test -s ignored.d/untracked && - test -s .gitignore -' - -test_expect_success 'stash save -u can stash with only untracked files different' ' - echo 4 > file4 && - git stash -u && - test_path_is_missing file4 -' - -test_expect_success 'stash save --all does not respect .gitignore' ' - git stash -a && - test_path_is_missing ignored && - test_path_is_missing ignored.d && - test_path_is_missing .gitignore -' - -test_expect_success 'stash save --all is stash poppable' ' - git stash pop && - test -s ignored && - test -s ignored.d/untracked && - test -s .gitignore -' - -test_expect_success 'stash push --include-untracked with pathspec' ' - >foo && - >bar && - git stash push --include-untracked -- foo && - test_path_is_file bar && - test_path_is_missing foo && - git stash pop && - test_path_is_file bar && - test_path_is_file foo -' - -test_expect_success 'stash push with $IFS character' ' - >"foo bar" && - >foo && - >bar && - git add foo* && - git stash push --include-untracked -- "foo b*" && - test_path_is_missing "foo bar" && - test_path_is_file foo && - test_path_is_file bar && - git stash pop && - test_path_is_file "foo bar" && - test_path_is_file foo && - test_path_is_file bar -' - -cat > .gitignore <<EOF -ignored -ignored.d/* -EOF - -test_expect_success 'stash previously ignored file' ' - git reset HEAD && - git add .gitignore && - git commit -m "Add .gitignore" && - >ignored.d/foo && - echo "!ignored.d/foo" >> .gitignore && - git stash save --include-untracked && - test_path_is_missing ignored.d/foo && - git stash pop && - test_path_is_file ignored.d/foo -' - -test_expect_success 'stash -u -- <untracked> doesnt print error' ' - >untracked && - git stash push -u -- untracked 2>actual && - test_path_is_missing untracked && - test_line_count = 0 actual -' - -test_expect_success 'stash -u -- <untracked> leaves rest of working tree in place' ' - >tracked && - git add tracked && - >untracked && - git stash push -u -- untracked && - test_path_is_missing untracked && - test_path_is_file tracked -' - -test_expect_success 'stash -u -- <tracked> <untracked> clears changes in both' ' - >tracked && - git add tracked && - >untracked && - git stash push -u -- tracked untracked && - test_path_is_missing tracked && - test_path_is_missing untracked -' - -test_expect_success 'stash --all -- <ignored> stashes ignored file' ' - >ignored.d/bar && - git stash push --all -- ignored.d/bar && - test_path_is_missing ignored.d/bar -' - -test_expect_success 'stash --all -- <tracked> <ignored> clears changes in both' ' - >tracked && - git add tracked && - >ignored.d/bar && - git stash push --all -- tracked ignored.d/bar && - test_path_is_missing tracked && - test_path_is_missing ignored.d/bar -' - -test_expect_success 'stash -u -- <ignored> leaves ignored file alone' ' - >ignored.d/bar && - git stash push -u -- ignored.d/bar && - test_path_is_file ignored.d/bar -' - -test_expect_success 'stash -u -- <non-existent> shows no changes when there are none' ' - git stash push -u -- non-existent >actual && - echo "No local changes to save" >expect && - test_i18ncmp expect actual -' - -test_expect_success 'stash -u with globs' ' - >untracked.txt && - git stash -u -- ":(glob)**/*.txt" && - test_path_is_missing untracked.txt -' - -test_done |