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

[PATCH] t1500: ensure current --since= behavior remains

From
EWEric Wong <e@80x24.org>
Date
Feb 10, 2021, 21:55 UTC
Message-ID
<20210210215543.18960-1-e@80x24.org>

This behavior of git-rev-parse is observed since git 1.8.3.1 at least(*), and likely earlier versions.

At least one git-reliant project in-the-wild relies on this current behavior of git-rev-parse being able to handle multiple --since= arguments without squeezing identical results together. So add a test to prevent the potential for regression in downstream projects.

(*) 1.8.3.1 the version packaged for CentOS 7.x
Signed-off-by: Eric Wong <e@80x24.org>
---
 Said git-reliant project does use allow /optional/ use of libgit2
 via Perl Inline::C; but libgit2's git__date_parse() isn't part of
 the public API; and it's unlikely anybody using CentOS 7.x would
 run the latest libgit2 even if it were added today.
 t/t1500-rev-parse.sh | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
diff --git a/t/t1500-rev-parse.sh b/t/t1500-rev-parse.sh
index abdda360d5..deae916707 100755
--- a/t/t1500-rev-parse.sh
+++ b/t/t1500-rev-parse.sh
@@ -243,4 +243,19 @@ test_expect_success 'showing the superproject correctly' '
 	test_cmp expect out
 '
 
+# at least one external project depends on this behavior:
+test_expect_success 'rev-parse --since= unsqueezed ordering' '
+	x1=--since=1970-01-01T00:00:01Z &&
+	x2=--since=1970-01-01T00:00:02Z &&
+	x3=--since=1970-01-01T00:00:03Z &&
+	git rev-parse $x1 $x1 $x3 $x2 >actual &&
+	cat >expect <<-EOF &&
+	--max-age=1
+	--max-age=1
+	--max-age=3
+	--max-age=2
+	EOF
+	test_cmp expect actual
+'
+
 test_done
Next: Jeff King
Message 1 of 3 in “t1500: ensure current --since= behavior remains”
  1. t1500: ensure current --since= behavior remainsEric Wong, Feb 10, 2021
  2. Jeff KingFeb 11, 2021
  3. Eric WongFeb 11, 2021

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.