Message ID | xmqqild5rvvw.fsf@gitster.g (mailing list archive) |
---|---|
State | Accepted |
Commit | b7cf25c8f486b3b9a99b2bbe68f158bc24f87b1c |
Headers | show |
Series | t9800: correct misuse of 'show -s --raw' in a test | expand |
On Sat, May 06, 2023 at 02:29:55PM -0700, Junio C Hamano wrote: > There is $(git show -s --raw --pretty=format:%at HEAD) in this test > that is meant to grab the author time of the commit. We used to > have a bug in the command line option parser of the diff family of > commands, where "show -s --raw" was identical to "show -s". > > With the "-s" bug fixed, "show -s --raw" would mean the same thing > as "show --raw", i.e. show the output from the diff machinery in the > "raw" format. And this test will start failing, so fix it before > that happens. > > Signed-off-by: Junio C Hamano <gitster@pobox.com> > --- > > * It appears pretty obvious that the original wanted to just grab > the %at timestamp of the HEAD, and with the fix to allow output > format options to take effect after "-s" is given, the existing > misuse of "--raw" after "-s" that ought to be a no-op breaks the > test. Yes, I think this is matching what the original code was trying to do. The patch looks good to me. -Peff
Jeff King <peff@peff.net> writes: >> * It appears pretty obvious that the original wanted to just grab >> the %at timestamp of the HEAD, and with the fix to allow output >> format options to take effect after "-s" is given, the existing >> misuse of "--raw" after "-s" that ought to be a no-op breaks the >> test. > > Yes, I think this is matching what the original code was trying to do. > The patch looks good to me. Thanks. This still can be a cause for backward compatibility worry, though. I do not think anybody would have lifted $(git show -s --raw --format=%ad) as a way to get the author timestamp from this test script, but it is entirely possible that this was written by the author who saw it done (incorrectly) that way elsewhere, and who knows how many others copied that (incorrect) way of using "-s --raw" from that original source we have no control over. Anyway.
diff --git a/t/t9800-git-p4-basic.sh b/t/t9800-git-p4-basic.sh index dc88d0e064..a4b3cb9492 100755 --- a/t/t9800-git-p4-basic.sh +++ b/t/t9800-git-p4-basic.sh @@ -330,7 +330,7 @@ test_expect_success 'initial import time from top change time' ' test_when_finished cleanup_git && ( cd "$git" && - gittime=$(git show -s --raw --pretty=format:%at HEAD) && + gittime=$(git show -s --pretty=format:%at HEAD) && echo $p4time $gittime && test $p4time = $gittime )
There is $(git show -s --raw --pretty=format:%at HEAD) in this test that is meant to grab the author time of the commit. We used to have a bug in the command line option parser of the diff family of commands, where "show -s --raw" was identical to "show -s". With the "-s" bug fixed, "show -s --raw" would mean the same thing as "show --raw", i.e. show the output from the diff machinery in the "raw" format. And this test will start failing, so fix it before that happens. Signed-off-by: Junio C Hamano <gitster@pobox.com> --- * It appears pretty obvious that the original wanted to just grab the %at timestamp of the HEAD, and with the fix to allow output format options to take effect after "-s" is given, the existing misuse of "--raw" after "-s" that ought to be a no-op breaks the test. https://github.com/git/git/actions/runs/4897931294/jobs/8755228452#step:4:1847 is CI run with the "-s" fix merged into 'seen'. t/t9800-git-p4-basic.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)