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
68