1#!/bin/sh
2
3test_description='git reset should work on unborn branch'
4. ./test-lib.sh
5
6test_expect_success 'setup' '
7 echo a >a &&
8 echo b >b
9'
10
11test_expect_success 'reset' '
12 git add a b &&
13 git reset &&
14
15 git ls-files >actual &&
16 test_must_be_empty actual
17'
18
19test_expect_success 'reset HEAD' '
20 rm .git/index &&
21 git add a b &&
22 test_must_fail git reset HEAD
23'
24
25test_expect_success 'reset $file' '
26 rm .git/index &&
27 git add a b &&
28 git reset a &&
29
30 echo b >expect &&
31 git ls-files >actual &&
32 test_cmp expect actual
33'
34
35test_expect_success PERL 'reset -p' '
36 rm .git/index &&
37 git add a &&
38 echo y >yes &&
39 git reset -p <yes >output &&
40
41 git ls-files >actual &&
42 test_must_be_empty actual &&
43 test_i18ngrep "Unstage" output
44'
45
46test_expect_success 'reset --soft is a no-op' '
47 rm .git/index &&
48 git add a &&
49 git reset --soft &&
50
51 echo a >expect &&
52 git ls-files >actual &&
53 test_cmp expect actual
54'
55
56test_expect_success 'reset --hard' '
57 rm .git/index &&
58 git add a &&
59 test_when_finished "echo a >a" &&
60 git reset --hard &&
61
62 git ls-files >actual &&
63 test_must_be_empty actual &&
64 test_path_is_missing a
65'
66
67test_done