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

[PATCH v3 2/2] range-diff: fix regression in passing along diff options

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Nov 7, 2018, 12:22 UTC
Message-ID
<20181107122202.1813-3-avarab@gmail.com>
In-Reply-To
<nycvar.QRO.7.76.6.1811071202480.39@tvgsbejvaqbjf.bet>

In 73a834e9e2 ("range-diff: relieve callers of low-level configuration burden", 2018-07-22) we broke passing down options like --no-patch, --stat etc. Fix that regression, and add a test for some of these options being passed down.

As noted in a change leading up to this ("range-diff doc: add a section about output stability", 2018-11-07) the output is not meant to be stable. So this regression test will likely need to be tweaked once we get a "proper" --stat option.

See https://public-inbox.org/git/nycvar.QRO.7.76.6.1811071202480.39@tvgsbejvaqbjf.bet/ for a further explanation of the regression.

The quoting of "EOF" here mirrors that of an earlier test. Perhaps that should be fixed, but let's leave that up to a later cleanup change.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 range-diff.c          |  3 ++-
 t/t3206-range-diff.sh | 30 ++++++++++++++++++++++++++++++
 2 files changed, 32 insertions(+), 1 deletion(-)
diff --git a/range-diff.c b/range-diff.c
index bd8083f2d1..488844c0af 100644
--- a/range-diff.c
+++ b/range-diff.c
@@ -453,7 +453,8 @@ int show_range_diff(const char *range1, const char *range2,
 		struct strbuf indent = STRBUF_INIT;
 
 		memcpy(&opts, diffopt, sizeof(opts));
-		opts.output_format = DIFF_FORMAT_PATCH;
+		if (!opts.output_format)
+			opts.output_format = DIFF_FORMAT_PATCH;
 		opts.flags.suppress_diff_headers = 1;
 		opts.flags.dual_color_diffed_diffs = dual_color;
 		opts.output_prefix = output_prefix_cb;
diff --git a/t/t3206-range-diff.sh b/t/t3206-range-diff.sh
index 6aae364171..e497c1358f 100755
--- a/t/t3206-range-diff.sh
+++ b/t/t3206-range-diff.sh
@@ -122,6 +122,36 @@ test_expect_success 'changed commit' '
 	test_cmp expected actual
 '
 
+test_expect_success 'changed commit with --no-patch diff option' '
+	git range-diff --no-color --no-patch topic...changed >actual &&
+	cat >expected <<-EOF &&
+	1:  4de457d = 1:  a4b3333 s/5/A/
+	2:  fccce22 = 2:  f51d370 s/4/A/
+	3:  147e64e ! 3:  0559556 s/11/B/
+	4:  a63e992 ! 4:  d966c5c s/12/B/
+	EOF
+	test_cmp expected actual
+'
+
+test_expect_success 'changed commit with --stat diff option' '
+	git range-diff --no-color --stat topic...changed >actual &&
+	cat >expected <<-EOF &&
+	1:  4de457d = 1:  a4b3333 s/5/A/
+	     a => b | 0
+	     1 file changed, 0 insertions(+), 0 deletions(-)
+	2:  fccce22 = 2:  f51d370 s/4/A/
+	     a => b | 0
+	     1 file changed, 0 insertions(+), 0 deletions(-)
+	3:  147e64e ! 3:  0559556 s/11/B/
+	     a => b | 0
+	     1 file changed, 0 insertions(+), 0 deletions(-)
+	4:  a63e992 ! 4:  d966c5c s/12/B/
+	     a => b | 0
+	     1 file changed, 0 insertions(+), 0 deletions(-)
+	EOF
+	test_cmp expected actual
+'
+
 test_expect_success 'changed commit with sm config' '
 	git range-diff --no-color --submodule=log topic...changed >actual &&
 	cat >expected <<-EOF &&
-- 
2.19.1.930.g4563a0d9d0
Previous: Martin ÅgrenNext: Eric Sunshine
Message 15 of 40 in “range-diff: add a --no-patch option to show a summary”
  1. range-diff: add a --no-patch option to show a summaryÆvar Arnfjörð Bjarmason, Nov 5, 2018
  2. Eric SunshineNov 5, 2018
  3. Ævar Arnfjörð BjarmasonNov 5, 2018
  4. Johannes SchindelinNov 6, 2018
  5. Ævar Arnfjörð BjarmasonNov 6, 2018
  6. Johannes SchindelinNov 7, 2018
  7. Johannes SchindelinNov 7, 2018
  8. Johannes SchindelinNov 7, 2018
  9. Johannes SchindelinNov 7, 2018
  10. 0/2 range-diff: doc + regression fixÆvar Arnfjörð Bjarmason, Nov 7, 2018
  11. 1/2 range-diff doc: add a section about output stabilityÆvar Arnfjörð Bjarmason, Nov 7, 2018
  12. Stephen & Linda SmithNov 7, 2018
  13. Junio C HamanoNov 7, 2018
  14. Martin ÅgrenNov 7, 2018
  15. 2/2 range-diff: fix regression in passing along diff optionsÆvar Arnfjörð Bjarmason, Nov 7, 2018
  16. Eric SunshineNov 8, 2018
  17. Ævar Arnfjörð BjarmasonNov 8, 2018
  18. Eric SunshineNov 9, 2018
  19. Ævar Arnfjörð BjarmasonNov 9, 2018
  20. 0/3 range-diff fixesÆvar Arnfjörð Bjarmason, Nov 9, 2018
  21. Johannes SchindelinNov 9, 2018
  22. 1/3 range-diff doc: add a section about output stabilityÆvar Arnfjörð Bjarmason, Nov 9, 2018
  23. 2/3 range-diff: fix regression in passing along diff optionsÆvar Arnfjörð Bjarmason, Nov 9, 2018
  24. 3/3 range-diff: make diff option behavior (e.g. --stat) consistentÆvar Arnfjörð Bjarmason, Nov 9, 2018
  25. Stephen & Linda SmithNov 9, 2018
  26. Eric SunshineNov 11, 2018
  27. Junio C HamanoNov 12, 2018
  28. Junio C HamanoNov 12, 2018
  29. 0/3 range-diff fixesÆvar Arnfjörð Bjarmason, Nov 13, 2018
  30. Johannes SchindelinNov 14, 2018
  31. 1/3 range-diff doc: add a section about output stabilityÆvar Arnfjörð Bjarmason, Nov 13, 2018
  32. 2/3 range-diff: fix regression in passing along diff optionsÆvar Arnfjörð Bjarmason, Nov 13, 2018
  33. 3/3 range-diff: make diff option behavior (e.g. --stat) consistentÆvar Arnfjörð Bjarmason, Nov 13, 2018
  34. Junio C HamanoNov 6, 2018
  35. Eric SunshineNov 6, 2018
  36. Junio C HamanoNov 6, 2018
  37. Ævar Arnfjörð BjarmasonNov 6, 2018
  38. range-diff: add a --no-patch option to show a summaryÆvar Arnfjörð Bjarmason, Nov 6, 2018
  39. Junio C HamanoNov 7, 2018
  40. Johannes SchindelinNov 7, 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.