Skip to content

Commit 999d902

Browse files
stefanbellergitster
authored andcommitted
t1300: document current behavior of setting options
This documents current behavior of the config machinery, when changing the value of some settings. This patch just serves to provide a baseline for the follow up that will fix some issues with the current behavior. Signed-off-by: Stefan Beller <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 438a87d commit 999d902

File tree

1 file changed

+86
-0
lines changed

1 file changed

+86
-0
lines changed

t/t1300-config.sh

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1188,6 +1188,92 @@ test_expect_success 'last one wins: three level vars' '
11881188
test_cmp expect actual
11891189
'
11901190

1191+
test_expect_success 'old-fashioned settings are case insensitive' '
1192+
test_when_finished "rm -f testConfig testConfig_expect testConfig_actual" &&
1193+
1194+
cat >testConfig_actual <<-EOF &&
1195+
[V.A]
1196+
r = value1
1197+
EOF
1198+
q_to_tab >testConfig_expect <<-EOF &&
1199+
[V.A]
1200+
Qr = value2
1201+
EOF
1202+
git config -f testConfig_actual "v.a.r" value2 &&
1203+
test_cmp testConfig_expect testConfig_actual &&
1204+
1205+
cat >testConfig_actual <<-EOF &&
1206+
[V.A]
1207+
r = value1
1208+
EOF
1209+
q_to_tab >testConfig_expect <<-EOF &&
1210+
[V.A]
1211+
QR = value2
1212+
EOF
1213+
git config -f testConfig_actual "V.a.R" value2 &&
1214+
test_cmp testConfig_expect testConfig_actual &&
1215+
1216+
cat >testConfig_actual <<-EOF &&
1217+
[V.A]
1218+
r = value1
1219+
EOF
1220+
q_to_tab >testConfig_expect <<-EOF &&
1221+
[V.A]
1222+
r = value1
1223+
Qr = value2
1224+
EOF
1225+
git config -f testConfig_actual "V.A.r" value2 &&
1226+
test_cmp testConfig_expect testConfig_actual &&
1227+
1228+
cat >testConfig_actual <<-EOF &&
1229+
[V.A]
1230+
r = value1
1231+
EOF
1232+
q_to_tab >testConfig_expect <<-EOF &&
1233+
[V.A]
1234+
r = value1
1235+
Qr = value2
1236+
EOF
1237+
git config -f testConfig_actual "v.A.r" value2 &&
1238+
test_cmp testConfig_expect testConfig_actual
1239+
'
1240+
1241+
test_expect_success 'setting different case sensitive subsections ' '
1242+
test_when_finished "rm -f testConfig testConfig_expect testConfig_actual" &&
1243+
1244+
cat >testConfig_actual <<-EOF &&
1245+
[V "A"]
1246+
R = v1
1247+
[K "E"]
1248+
Y = v1
1249+
[a "b"]
1250+
c = v1
1251+
[d "e"]
1252+
f = v1
1253+
EOF
1254+
q_to_tab >testConfig_expect <<-EOF &&
1255+
[V "A"]
1256+
Qr = v2
1257+
[K "E"]
1258+
Qy = v2
1259+
[a "b"]
1260+
Qc = v2
1261+
[d "e"]
1262+
f = v1
1263+
Qf = v2
1264+
EOF
1265+
# exact match
1266+
git config -f testConfig_actual a.b.c v2 &&
1267+
# match section and subsection, key is cased differently.
1268+
git config -f testConfig_actual K.E.y v2 &&
1269+
# section and key are matched case insensitive, but subsection needs
1270+
# to match; When writing out new values only the key is adjusted
1271+
git config -f testConfig_actual v.A.r v2 &&
1272+
# subsection is not matched:
1273+
git config -f testConfig_actual d.E.f v2 &&
1274+
test_cmp testConfig_expect testConfig_actual
1275+
'
1276+
11911277
for VAR in a .a a. a.0b a."b c". a."b c".0d
11921278
do
11931279
test_expect_success "git -c $VAR=VAL rejects invalid '$VAR'" '

0 commit comments

Comments
 (0)