@@ -18,4 +18,76 @@ am_3way () {
18
18
KNOWN_FAILURE_NOFF_MERGE_ATTEMPTS_TO_MERGE_REMOVED_SUBMODULE_FILES=1
19
19
test_submodule_switch " am_3way"
20
20
21
+ test_expect_success ' setup diff.submodule' '
22
+ test_commit one &&
23
+ INITIAL=$(git rev-parse HEAD) &&
24
+
25
+ git init submodule &&
26
+ (
27
+ cd submodule &&
28
+ test_commit two &&
29
+ git rev-parse HEAD >../initial-submodule
30
+ ) &&
31
+ git submodule add ./submodule &&
32
+ git commit -m first &&
33
+
34
+ (
35
+ cd submodule &&
36
+ test_commit three &&
37
+ git rev-parse HEAD >../first-submodule
38
+ ) &&
39
+ git add submodule &&
40
+ git commit -m second &&
41
+ SECOND=$(git rev-parse HEAD) &&
42
+
43
+ (
44
+ cd submodule &&
45
+ git mv two.t four.t &&
46
+ git commit -m "second submodule" &&
47
+ git rev-parse HEAD >../second-submodule
48
+ ) &&
49
+ test_commit four &&
50
+ git add submodule &&
51
+ git commit --amend --no-edit &&
52
+ THIRD=$(git rev-parse HEAD) &&
53
+ git submodule update --init
54
+ '
55
+
56
+ run_test () {
57
+ START_COMMIT=$1 &&
58
+ EXPECT=$2 &&
59
+ # Abort any merges in progress: the previous
60
+ # test may have failed, and we should clean up.
61
+ test_might_fail git am --abort &&
62
+ git reset --hard $START_COMMIT &&
63
+ rm -f * .patch &&
64
+ git format-patch -1 &&
65
+ git reset --hard $START_COMMIT ^ &&
66
+ git submodule update &&
67
+ git am * .patch &&
68
+ git submodule update &&
69
+ git -C submodule rev-parse HEAD > actual &&
70
+ test_cmp $EXPECT actual
71
+ }
72
+
73
+ test_expect_success ' diff.submodule unset' '
74
+ test_unconfig diff.submodule &&
75
+ run_test $SECOND first-submodule
76
+ '
77
+
78
+ test_expect_success ' diff.submodule unset with extra file' '
79
+ test_unconfig diff.submodule &&
80
+ run_test $THIRD second-submodule
81
+ '
82
+
83
+ test_expect_success ' diff.submodule=log' '
84
+ test_config diff.submodule log &&
85
+ run_test $SECOND first-submodule
86
+ '
87
+
88
+ test_expect_success ' diff.submodule=log with extra file' '
89
+ test_config diff.submodule log &&
90
+ run_test $THIRD second-submodule
91
+ '
92
+
21
93
test_done
0 commit comments