1133
test_cmp expect actual
1134
'
1135
1136
+test_expect_success 'git cat-file --batch-command mailmap yes enables mailmap mid-stream' '
1137
+ test_when_finished "rm .mailmap" &&
1138
+ cat >.mailmap <<-\EOF &&
1139
+ C O Mitter <committer@example.com> Orig <orig@example.com>
1140
+ EOF
1141
+ commit_sha=$(git rev-parse HEAD) &&
1142
+ git cat-file commit HEAD >commit_no_mailmap.out &&
1143
+ git cat-file --use-mailmap commit HEAD >commit_mailmap.out &&
1144
+ size_no_mailmap=$(wc -c <commit_no_mailmap.out) &&
1145
+ size_mailmap=$(wc -c <commit_mailmap.out) &&
1146
+ printf "info HEAD\nmailmap yes\ninfo HEAD\n" | git cat-file --batch-command >actual &&
1147
+ echo $commit_sha commit $size_no_mailmap >expect &&
1148
+ echo $commit_sha commit $size_mailmap >>expect &&
1149
+ test_cmp expect actual
1150
+'
1151
+
1152
+test_expect_success 'git cat-file --batch-command mailmap no disables mailmap mid-stream' '
1153
+ test_when_finished "rm .mailmap" &&
1154
+ cat >.mailmap <<-\EOF &&
1155
+ C O Mitter <committer@example.com> Orig <orig@example.com>
1156
+ EOF
1157
+ commit_sha=$(git rev-parse HEAD) &&
1158
+ git cat-file commit HEAD >commit_no_mailmap.out &&
1159
+ git cat-file --use-mailmap commit HEAD >commit_mailmap.out &&
1160
+ size_no_mailmap=$(wc -c <commit_no_mailmap.out) &&
1161
+ size_mailmap=$(wc -c <commit_mailmap.out) &&
1162
+ printf "mailmap yes\ninfo HEAD\nmailmap no\ninfo HEAD\n" | git cat-file --batch-command >actual &&
1163
+ echo $commit_sha commit $size_mailmap >expect &&
1164
+ echo $commit_sha commit $size_no_mailmap >>expect &&
1165
+ test_cmp expect actual
1166
+'
1167
+
1168
+test_expect_success 'git cat-file --batch-command mailmap works in --buffer mode' '
1169
+ test_when_finished "rm .mailmap" &&
1170
+ cat >.mailmap <<-\EOF &&
1171
+ C O Mitter <committer@example.com> Orig <orig@example.com>
1172
+ EOF
1173
+ commit_sha=$(git rev-parse HEAD) &&
1174
+ git cat-file commit HEAD >commit_no_mailmap.out &&
1175
+ git cat-file --use-mailmap commit HEAD >commit_mailmap.out &&
1176
+ size_no_mailmap=$(wc -c <commit_no_mailmap.out) &&
1177
+ size_mailmap=$(wc -c <commit_mailmap.out) &&
1178
+ printf "mailmap yes\ninfo HEAD\nmailmap no\ninfo HEAD\nflush\n" | git cat-file --batch-command --buffer >actual &&
1179
+ echo $commit_sha commit $size_mailmap >expect &&
1180
+ echo $commit_sha commit $size_no_mailmap >>expect &&
1181
+ test_cmp expect actual
1182
+'
1183
+
1184
+test_expect_success 'git cat-file --batch-command mailmap no overrides startup --mailmap' '
1185
+ test_when_finished "rm .mailmap" &&
1186
+ cat >.mailmap <<-\EOF &&
1187
+ C O Mitter <committer@example.com> Orig <orig@example.com>
1188
+ EOF
1189
+ commit_sha=$(git rev-parse HEAD) &&
1190
+ git cat-file --use-mailmap commit HEAD >commit_mailmap.out &&
1191
+ size_mailmap=$(wc -c <commit_mailmap.out) &&
1192
+ git cat-file commit HEAD >commit_no_mailmap.out &&
1193
+ size_no_mailmap=$(wc -c <commit_no_mailmap.out) &&
1194
+ printf "info HEAD\nmailmap no\ninfo HEAD\n" | \
1195
+ git cat-file --mailmap --batch-command >actual &&
1196
+ echo $commit_sha commit $size_mailmap >expect &&
1197
+ echo $commit_sha commit $size_no_mailmap >>expect &&
1198
+ test_cmp expect actual
1199
+'
1200
+
1201
+test_expect_success 'git cat-file --batch-command mailmap yes overrides startup --no-mailmap' '
1202
+ test_when_finished "rm .mailmap" &&
1203
+ cat >.mailmap <<-\EOF &&
1204
+ C O Mitter <committer@example.com> Orig <orig@example.com>
1205
+ EOF
1206
+ commit_sha=$(git rev-parse HEAD) &&
1207
+ git cat-file commit HEAD >commit_no_mailmap.out &&
1208
+ size_no_mailmap=$(wc -c <commit_no_mailmap.out) &&
1209
+ git cat-file --use-mailmap commit HEAD >commit_mailmap.out &&
1210
+ size_mailmap=$(wc -c <commit_mailmap.out) &&
1211
+ printf "info HEAD\nmailmap yes\ninfo HEAD\n" | \
1212
+ git cat-file --no-mailmap --batch-command >actual &&
1213
+ echo $commit_sha commit $size_no_mailmap >expect &&
1214
+ echo $commit_sha commit $size_mailmap >>expect &&
1215
+ test_cmp expect actual
1216
+'
1217
+
1218
+test_expect_success 'git cat-file --batch-command mailmap accepts true/false' '
1219
+ test_when_finished "rm .mailmap" &&
1220
+ cat >.mailmap <<-\EOF &&
1221
+ C O Mitter <committer@example.com> Orig <orig@example.com>
1222
+ EOF
1223
+ commit_sha=$(git rev-parse HEAD) &&
1224
+ git cat-file commit HEAD >commit_no_mailmap.out &&
1225
+ size_no_mailmap=$(wc -c <commit_no_mailmap.out) &&
1226
+ git cat-file --use-mailmap commit HEAD >commit_mailmap.out &&
1227
+ size_mailmap=$(wc -c <commit_mailmap.out) &&
1228
+ printf "mailmap true\ninfo HEAD\nmailmap false\ninfo HEAD\n" | \
1229
+ git cat-file --batch-command >actual &&
1230
+ echo $commit_sha commit $size_mailmap >expect &&
1231
+ echo $commit_sha commit $size_no_mailmap >>expect &&
1232
+ test_cmp expect actual
1233
+'
1234
+
1235
+test_expect_success 'git cat-file --batch-command mailmap rejects invalid boolean' '
1236
+ echo "mailmap maybe" >in &&
1237
+ test_must_fail git cat-file --batch-command <in 2>err &&
1238
+ test_grep "mailmap: invalid boolean .*maybe" err
1239
+'
1240
+
1241
test_expect_success 'git cat-file --mailmap works with different author and committer' '
1242
test_when_finished "rm .mailmap" &&
1243
cat >.mailmap <<-\EOF &&