Hi, On Tue, Oct 19, 2010 at 11:48 PM, Jonathan Nieder <[email protected]> wrote: > Liraz Siri wrote: > >> I've been investigating a merge bug in an unusually large Git repository >> with over ten thousand commits. >> >> In older versions of the git-core package (the one in stable), >> attempting to merge would raise a segmentation fault. In the latest >> version from sid a slightly more useful error message is produced: >> >> BUG: There are unmerged index entries: >> BUG: 2 [ ... snip file paths ...] Bug in merge-recursive.c >> >> The bug seems so have been fixed in the latest version of Git from >> upstream (1.7.3.1) so I'm guessing once you update to that or a higher >> version everything will be fine. > > Thanks! I'm cc-ing Elijah Newren, who's been doing work recently in > this area (unhandled index entries that appear during directory/file > conflicts). > > Elijah, is it safe to pull in the en/d-f-conflict-fix branch on top of > v1.7.2.3, or are more fixes (e.g. from en/merge-recursive) needed in > addition? (For the record, the relevant changes are: > > 8 files changed, 284 insertions(+), 24 deletions(-) > > ). > > I fear that it is unlikely this work can be included in Debian > squeeze, but it might be worth proposing it anyway.
If git-1.7.3.1 fixes it, then nothing from en/merge-recursive is needed and en/d-f-conflict-fix on top of 1.7.2.3 should be sufficient (and, in fact, only the changes to merge-recursive.c from that series is needed). I'm relatively sure that series should apply cleanly to 1.7.2.3 (though I haven't tried it locally and run the relevant tests included with it to verify), but it will introduce a small bug in fast-export on platforms with a non-stable qsort. I doubt that affects Debian, but you may want to also merge 4ce6fb80580 from Johannes Sixt if you merge all of en/d-f-conflict-fix. Oh, and a side note: The merge recursive work is actually far beyond D/F conflicts now (though I haven't yet sent an updated series to the git list). I've found errors that do not involve D/F conflicts that hit a wide range of areas now: deleting untracked files, criss-cross merges that have undetected or spurious conflicts, rename/rename (2 to 1) conflict detection code is never triggered and turns out to be very buggy, working tree contents after merge conflicts aren't as expected in some cases, not breaking complete rewrites into pairs of deletes and creates can cause spurious or undetected conflicts, rename/rename/add conflicts (not currently checked for in the code base and not correctly handled), and various cross-interactions between all these different issues. -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]

