Re: BUG: git log: fatal: internal error in diff-resolve-rename-copy
- From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
- Date
- Aug 13, 2010, 13:38 UTC
- Message-ID
- <AANLkTikGE-m=Tht2tNbP5=Bej78284_ouLBfdk_aEDSO@mail.gmail.com>
- In-Reply-To
- <AANLkTikPhWgeeLBV3dbLZ5UM3UDmkOmpqrmwqPmGfn7Z@mail.gmail.com>
On Fri, Aug 13, 2010 at 11:25, Constantine Plotnikov <constantine.plotnikov@gmail.com> wrote:
Show 5 quoted lines
> Somewhere between the git 1.7.0.2 and the git 1.7.2.0 the rename > detection started to fail with fatal error on some files in our > repository. The bug could be seen on the public IntelliJ IDEA > repository (about 760M in size), but our users have reported it as > well.
>From a bisect:
1da6175d438a9849db07a68326ee05f291510074 is the first bad commit
commit 1da6175d438a9849db07a68326ee05f291510074
Author: Bo Yang <struggleyb.nku@gmail.com>
Date: Thu May 6 21:52:28 2010 -0700Make diffcore_std only can run once before a diff_flush
When file renames/copies detection is turned on, the
second diffcore_std will degrade a 'C' pair to a 'R' pair. And this may happen when we run 'git log --follow' with
hard copies finding. That is, the try_to_follow_renames()
will run diffcore_std to find the copies, and then
'git log' will issue another diffcore_std, which will reduce
'src->rename_used' and recognize this copy as a rename.
This is not what we want. So, I think we really don't need to run diffcore_std more
than one time. Signed-off-by: Bo Yang <struggleyb.nku@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>Bisect script:
#!/bin/sh
cd ~/g/git
make clean
make -j 10 CC=clang CFLAGS=-O0./git --git-dir=/tmp/idea/.git log -M --follow --name-only -- platform/lang-api/src/com/intellij/lang/documentation/CompositeDocumentationProvider.java
> /dev/null
ret=$?
test $ret -gt 127 && ret=127
exit $ret