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 <christoph.mal...@gmx.de>
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

Reply via email to