git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 1/3] t1300: document current behavior of setting options

From
Stefan Beller <sbeller@google.com>
Date
Aug 1, 2018, 19:34 UTC
Message-ID
<20180801193413.146994-2-sbeller@google.com>
In-Reply-To
<20180801193413.146994-1-sbeller@google.com>

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 <sbeller@google.com>
---
 t/t1300-config.sh | 86 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 86 insertions(+)
diff --git a/t/t1300-config.sh b/t/t1300-config.sh
index 03c223708eb..ced13012409 100755
--- a/t/t1300-config.sh
+++ b/t/t1300-config.sh
@@ -1218,6 +1218,92 @@ test_expect_success 'last one wins: three level vars' '
 	test_cmp expect actual
 '
 
+test_expect_success 'old-fashioned settings are case insensitive' '
+	test_when_finished "rm -f testConfig testConfig_expect testConfig_actual" &&
+
+	cat >testConfig_actual <<-EOF &&
+		[V.A]
+		r = value1
+	EOF
+	q_to_tab >testConfig_expect <<-EOF &&
+		[V.A]
+		Qr = value2
+	EOF
+	git config -f testConfig_actual "v.a.r" value2 &&
+	test_cmp testConfig_expect testConfig_actual &&
+
+	cat >testConfig_actual <<-EOF &&
+		[V.A]
+		r = value1
+	EOF
+	q_to_tab >testConfig_expect <<-EOF &&
+		[V.A]
+		QR = value2
+	EOF
+	git config -f testConfig_actual "V.a.R" value2 &&
+	test_cmp testConfig_expect testConfig_actual &&
+
+	cat >testConfig_actual <<-EOF &&
+		[V.A]
+		r = value1
+	EOF
+	q_to_tab >testConfig_expect <<-EOF &&
+		[V.A]
+		r = value1
+		Qr = value2
+	EOF
+	git config -f testConfig_actual "V.A.r" value2 &&
+	test_cmp testConfig_expect testConfig_actual &&
+
+	cat >testConfig_actual <<-EOF &&
+		[V.A]
+		r = value1
+	EOF
+	q_to_tab >testConfig_expect <<-EOF &&
+		[V.A]
+		r = value1
+		Qr = value2
+	EOF
+	git config -f testConfig_actual "v.A.r" value2 &&
+	test_cmp testConfig_expect testConfig_actual
+'
+
+test_expect_success 'setting different case sensitive subsections ' '
+	test_when_finished "rm -f testConfig testConfig_expect testConfig_actual" &&
+
+	cat >testConfig_actual <<-EOF &&
+		[V "A"]
+		R = v1
+		[K "E"]
+		Y = v1
+		[a "b"]
+		c = v1
+		[d "e"]
+		f = v1
+	EOF
+	q_to_tab >testConfig_expect <<-EOF &&
+		[V "A"]
+		Qr = v2
+		[K "E"]
+		Qy = v2
+		[a "b"]
+		Qc = v2
+		[d "e"]
+		f = v1
+		Qf = v2
+	EOF
+	# exact match
+	git config -f testConfig_actual a.b.c v2 &&
+	# match section and subsection, key is cased differently.
+	git config -f testConfig_actual K.E.y v2 &&
+	# section and key are matched case insensitive, but subsection needs
+	# to match; When writing out new values only the key is adjusted
+	git config -f testConfig_actual v.A.r v2 &&
+	# subsection is not matched:
+	git config -f testConfig_actual d.E.f v2 &&
+	test_cmp testConfig_expect testConfig_actual
+'
+
 for VAR in a .a a. a.0b a."b c". a."b c".0d
 do
 	test_expect_success "git -c $VAR=VAL rejects invalid '$VAR'" '
-- 
2.18.0.132.g195c49a2227
Previous: Stefan BellerNext: Stefan Beller
Message 19 of 33 in “config: fix case sensitive subsection names on writing”
  1. config: fix case sensitive subsection names on writingStefan Beller, Jul 27, 2018
  2. Brandon WilliamsJul 27, 2018
  3. Junio C HamanoJul 27, 2018
  4. Stefan BellerJul 27, 2018
  5. config: fix case sensitive subsection names on writingStefan Beller, Jul 27, 2018
  6. Stefan BellerJul 27, 2018
  7. Junio C HamanoJul 28, 2018
  8. Stefan BellerJul 28, 2018
  9. Jeff KingJul 28, 2018
  10. Junio C HamanoJul 28, 2018
  11. Johannes SchindelinJul 30, 2018
  12. 0/3 config: fix case sensitive subsection names on writingStefan Beller, Jul 30, 2018
  13. 1/3 t1300: document current behavior of setting optionsStefan Beller, Jul 30, 2018
  14. 2/3 config: fix case sensitive subsection names on writingStefan Beller, Jul 30, 2018
  15. Junio C HamanoJul 31, 2018
  16. 3/3 config: treat section case insensitive in store_aux_eventStefan Beller, Jul 30, 2018
  17. Junio C HamanoJul 31, 2018
  18. 0/3 sb/config-write-fix done without robbing PeterStefan Beller, Aug 1, 2018
  19. 1/3 t1300: document current behavior of setting optionsStefan Beller, Aug 1, 2018
  20. 2/3 config: fix case sensitive subsection names on writingStefan Beller, Aug 1, 2018
  21. Ramsay JonesAug 1, 2018
  22. Junio C HamanoAug 1, 2018
  23. Junio C HamanoAug 1, 2018
  24. Stefan BellerAug 3, 2018
  25. Junio C HamanoAug 3, 2018
  26. 3/3 git-config: document accidental multi-line setting in deprecated syntaxStefan Beller, Aug 1, 2018
  27. Eric SunshineAug 1, 2018
  28. Junio C HamanoAug 2, 2018
  29. 0/3 Reroll of sb/config-write-fixStefan Beller, Aug 3, 2018
  30. 1/3 t1300: document current behavior of setting optionsStefan Beller, Aug 3, 2018
  31. 2/3 config: fix case sensitive subsection names on writingStefan Beller, Aug 3, 2018
  32. 3/3 git-config: document accidental multi-line setting in deprecated syntaxStefan Beller, Aug 3, 2018
  33. Junio C HamanoJul 27, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.