Hi Jonathan,
Am 02.12.14 00:35, schrieb Jonathan Nieder:
> Christoph Mallon wrote:
>> % git rev-parse 'master@{52}'
>> warning: Log for ref refs/heads/master has gap after Thu, 1 Jan 1970
>> 00:00:01 +0000.
>> 0000000000000000000000000000000000000036
>
> Can you say more? What output did you expect and how does this differ
> from it?
sorry, I thought it is obvious that the warning should not be there.
As far as I understand the code, this warning is shown, when the old
commit id of one entry does not equal the new commit id of its predecessor.
But this reflog file does not have such a gap.
Also the correct result ist 0...035, not 0...036.
I.e. one entry is erroneously skipped.
> I tried, with git 2.2.0,
>
> git init gitbug &&
> cd gitbug &&
> git commit --allow-empty -m a &&
> wget http://tron.yamagi.org/zeug/reflog.bad &&
> mv reflog.bad .git/logs/refs/heads/master &&
> sha1sum .git/logs/refs/heads/master &&
> git rev-parse 'master@{52}'
These steps look right.
> The output:
>
> 9ffe44715d0e542a60916255f144c74e6760ffd0 .git/logs/refs/heads/master
The checksum is fine.
> 0000000000000000000000000000000000000035
You do not see the bug. |:
>
> Could you make a test script that illustrates and reproduces the
> problem? I.e., a patch to a file like t/t1410-reflog.sh [...]
http://tron.yamagi.org/zeug/0001-t1410-Test-erroneous-skipping-of-reflog-entries.patch
(also attached)
This test works for me at v2.0.4 and fails at v2.1.0 and up (v2.2.0, the
current master).
Bisect says the symptom appears at 4207ed285f31ad3e04f08254237c0c1a1609642b.
Christoph
>From 82115da194adc42143b8603063e0a419fbbf4928 Mon Sep 17 00:00:00 2001
From: Christoph Mallon <[email protected]>
Date: Tue, 2 Dec 2014 07:03:11 +0100
Subject: [PATCH] t1410: Test erroneous skipping of reflog entries.
---
t/t1410-reflog.sh | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 63 insertions(+)
diff --git a/t/t1410-reflog.sh b/t/t1410-reflog.sh
index 8cf4461..cb77c27 100755
--- a/t/t1410-reflog.sh
+++ b/t/t1410-reflog.sh
@@ -287,4 +287,67 @@ test_expect_success 'stale dirs do not cause d/f conflicts
(reflogs off)' '
test_cmp expect actual
'
+test_expect_success 'erroneous skipping of reflog entries' '
+ git checkout -b reflogskip &&
+ cat > .git/logs/refs/heads/reflogskip <<EOF &&
+0000000000000000000000000000000000000037
0000000000000000000000000000000000000036 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxx> 0000000001 +0000 X
+0000000000000000000000000000000000000036
0000000000000000000000000000000000000035 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxx> 0000000001 +0000 X
+0000000000000000000000000000000000000035
0000000000000000000000000000000000000034 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+0000000000000000000000000000000000000034
0000000000000000000000000000000000000033 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxx> 0000000001 +0000 XXXXXXXXXXXXXXX
+0000000000000000000000000000000000000033
0000000000000000000000000000000000000032 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+0000000000000000000000000000000000000032
0000000000000000000000000000000000000031 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+0000000000000000000000000000000000000031
0000000000000000000000000000000000000030 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+0000000000000000000000000000000000000030
000000000000000000000000000000000000002f xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+000000000000000000000000000000000000002f
000000000000000000000000000000000000002e xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+000000000000000000000000000000000000002e
000000000000000000000000000000000000002d xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+000000000000000000000000000000000000002d
000000000000000000000000000000000000002c xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+000000000000000000000000000000000000002c
000000000000000000000000000000000000002b xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+000000000000000000000000000000000000002b
000000000000000000000000000000000000002a xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+000000000000000000000000000000000000002a
0000000000000000000000000000000000000029 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+0000000000000000000000000000000000000029
0000000000000000000000000000000000000028 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+0000000000000000000000000000000000000028
0000000000000000000000000000000000000027 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+0000000000000000000000000000000000000027
0000000000000000000000000000000000000026 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+0000000000000000000000000000000000000026
0000000000000000000000000000000000000025 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+0000000000000000000000000000000000000025
0000000000000000000000000000000000000024 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+0000000000000000000000000000000000000024
0000000000000000000000000000000000000023 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+0000000000000000000000000000000000000023
0000000000000000000000000000000000000022 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+0000000000000000000000000000000000000022
0000000000000000000000000000000000000021 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+0000000000000000000000000000000000000021
0000000000000000000000000000000000000020 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+0000000000000000000000000000000000000020
000000000000000000000000000000000000001f xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+000000000000000000000000000000000000001f
000000000000000000000000000000000000001e xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+000000000000000000000000000000000000001e
000000000000000000000000000000000000001d xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+000000000000000000000000000000000000001d
000000000000000000000000000000000000001c xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+000000000000000000000000000000000000001c
000000000000000000000000000000000000001b xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+000000000000000000000000000000000000001b
000000000000000000000000000000000000001a xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+000000000000000000000000000000000000001a
0000000000000000000000000000000000000019 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+0000000000000000000000000000000000000019
0000000000000000000000000000000000000018 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+0000000000000000000000000000000000000018
0000000000000000000000000000000000000017 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+0000000000000000000000000000000000000017
0000000000000000000000000000000000000016 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+0000000000000000000000000000000000000016
0000000000000000000000000000000000000015 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+0000000000000000000000000000000000000015
0000000000000000000000000000000000000014 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+0000000000000000000000000000000000000014
0000000000000000000000000000000000000013 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+0000000000000000000000000000000000000013
0000000000000000000000000000000000000012 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+0000000000000000000000000000000000000012
0000000000000000000000000000000000000011 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+0000000000000000000000000000000000000011
0000000000000000000000000000000000000010 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+0000000000000000000000000000000000000010
000000000000000000000000000000000000000f xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+000000000000000000000000000000000000000f
000000000000000000000000000000000000000e xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+000000000000000000000000000000000000000e
000000000000000000000000000000000000000d xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+000000000000000000000000000000000000000d
000000000000000000000000000000000000000c xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+000000000000000000000000000000000000000c
000000000000000000000000000000000000000b xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+000000000000000000000000000000000000000b
000000000000000000000000000000000000000a xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+000000000000000000000000000000000000000a
0000000000000000000000000000000000000009 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+0000000000000000000000000000000000000009
0000000000000000000000000000000000000008 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+0000000000000000000000000000000000000008
0000000000000000000000000000000000000007 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+0000000000000000000000000000000000000007
0000000000000000000000000000000000000006 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+0000000000000000000000000000000000000006
0000000000000000000000000000000000000005 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+0000000000000000000000000000000000000005
0000000000000000000000000000000000000004 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+0000000000000000000000000000000000000004
0000000000000000000000000000000000000003 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+0000000000000000000000000000000000000003
0000000000000000000000000000000000000002 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+0000000000000000000000000000000000000002
0000000000000000000000000000000000000001 xxxxxxxxxxxxxxxx
<xxx@xxxxxxxxxxxxxxxxxxxxx> 0000000001 +0000
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+EOF
+ git rev-parse "@{52}" > actual 2>&1 &&
+ echo "0000000000000000000000000000000000000035" > expect &&
+ test_cmp expect actual
+'
+
test_done
--
2.1.2