Re: absurdly slow git-diff
- From
Mike Hommey <mh@glandium.org>
- Date
- Nov 7, 2008, 21:28 UTC
- Message-ID
- <20081107212836.GA22717@glandium.org>
- In-Reply-To
- <20081107200126.GA20284@toroid.org>
On Sat, Nov 08, 2008 at 01:31:27AM +0530, Abhijit Menon-Sen wrote:
Show 9 quoted lines
> I have a 240k-line file, and I change one character on every sixth line. > The resulting diff gives git serious indigestion: > > $ git --version > git version 1.6.0.3.640.g6331a > $ mkdir a; cd a; git init > Initialized empty Git repository in /home/ams/a/.git/ > $ cp ../1 .; git add 1; git commit -q -m 1 > $ cp ../2 1; git add 1; git commit -q -m 2
You don't need to go that far. You can stop at cp ../2 1 and run git diff from there.
All the time is spent in the two loops in xdiff/xprepare.c:xdl_cleanup_records, on line 400 and 412.
I'll leave the rest of the investigation to people actually knowing this code ;)
Mike