blob: 7b447d304f012fcdd846705f508410b0b52cd753 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
#!/bin/sh
test_description='Intent to add'
. ./test-lib.sh
test_expect_success 'intent to add' '
echo hello >file &&
echo hello >elif &&
git add -N file &&
git add elif
'
test_expect_success 'check result of "add -N"' '
git ls-files -s file >actual &&
empty=$(git hash-object --stdin </dev/null) &&
echo "100644 $empty 0 file" >expect &&
test_cmp expect actual
'
test_expect_success 'intent to add is just an ordinary empty blob' '
git add -u &&
git ls-files -s file >actual &&
git ls-files -s elif | sed -e "s/elif/file/" >expect &&
test_cmp expect actual
'
test_expect_success 'intent to add does not clobber existing paths' '
git add -N file elif &&
empty=$(git hash-object --stdin </dev/null) &&
git ls-files -s >actual &&
! grep "$empty" actual
'
test_expect_success 'cannot commit with i-t-a entry' '
test_tick &&
git commit -a -m initial &&
git reset --hard &&
echo xyzzy >rezrov &&
echo frotz >nitfol &&
git add rezrov &&
git add -N nitfol &&
test_must_fail git commit
'
test_expect_success 'can write-tree with i-t-a entry' '
git reset --hard &&
echo xyzzy >rezrov &&
echo frotz >nitfol &&
git add rezrov &&
git add -N nitfol &&
git write-tree --ignore-intent-to-add >actual &&
echo 150389afa1ccf46e4104667c741cd0e598269511 >expected &&
test_cmp expected actual
'
test_expect_success 'can commit tree with i-t-a entry' '
git reset --hard &&
echo xyzzy >rezrov &&
echo frotz >nitfol &&
git add rezrov &&
git add -N nitfol &&
git config commit.ignoreIntentToAdd true &&
git commit -m initial &&
git ls-tree -r HEAD >actual &&
cat >expected <<EOF &&
100644 blob ce013625030ba8dba906f756967f9e9ca394464a elif
100644 blob ce013625030ba8dba906f756967f9e9ca394464a file
100644 blob cf7711b63209d0dbc2d030f7fe3513745a9880e4 rezrov
EOF
test_cmp expected actual &&
git config commit.ignoreIntentToAdd false &&
git reset HEAD^
'
test_expect_success 'can commit with an unrelated i-t-a entry in index' '
git reset --hard &&
echo xyzzy >rezrov &&
echo frotz >nitfol &&
git add rezrov &&
git add -N nitfol &&
git commit -m partial rezrov
'
test_expect_success 'can "commit -a" with an i-t-a entry' '
git reset --hard &&
: >nitfol &&
git add -N nitfol &&
git commit -a -m all
'
test_done
|