[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: PROPOSAL: Move to git, now that bzr is no longer a req.

From: David Kastrup
Subject: Re: PROPOSAL: Move to git, now that bzr is no longer a req.
Date: Tue, 07 Jan 2014 20:17:15 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux)

Eli Zaretskii <address@hidden> writes:

>> From: David Kastrup <address@hidden>
>> Date: Mon, 06 Jan 2014 15:53:28 +0100
>> Richard Stallman <address@hidden> writes:
>> >     I never consult changelog files if I have the full VCS history.
>> >
>> > I do.  I use the ChangeLog files to see what changes affected a
>> > certain function.
>> I tend to use C-x v g for that (it maps to git blame).
> This can be annoyingly slow (and with git is slower than with bzr).
> E.g., try xdisp.c: it takes git more than 4 minutes to display
> anything in response to "C-x v g" (2 minutes if done from the shell).
> Looking into ChangeLog's is surely faster.
> Someone, I think it was you, once told me that the slow operation of
> 'git blame' was a deliberate design decision of the git developers.

No, not really: it's just that blaming a file is not cheaper than
blaming a directory.

At any rate, I'm currently just analyzing the code for git-blame, and
for better or worse, it's appallingly bad (quadratic in file size, times
number of commits).  It should be fairly straightforward to bring down
the time rather dramatically.  Several inner loops are run more than
2^32 times for "git blame src/xdisp.c".

It's not a design decision, it is just bad programming.  Salvageable.
Considering how much life time I spent waiting for some git-gui blame (I
conveniently forgot about that, I have to admit) it's sort of amusing
that I never thought of looking at its code (several years ago,
I improved some of the performance-critical but already efficient parts
of git).  This should be rather low-hanging fruit.

Of course, it will likely take a year to trickle down even if I
contribute something in the next weeks.

David Kastrup

reply via email to

[Prev in Thread] Current Thread [Next in Thread]