[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Dependency on tex-buf.el
From: |
David Kastrup |
Subject: |
Re: Dependency on tex-buf.el |
Date: |
Sat, 19 Mar 2022 12:39:19 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) |
Ikumi Keita <ikumi@ikumi.que.jp> writes:
> Hi David and Tassilo,
>
>>>>>> David Kastrup <dak@gnu.org> writes:
>> As a note aside: we are using Git as version control system these days.
>> Git doesn't maintain change histories in the first place but computes
>> them on the fly when calling "git blame" or similar. It has various
>> options on how thoroughly it will track content moving across files.
>
> Oh, indeed!
> ,----[
> https://git-scm.com/book/en/v2/Git-Tools-Debugging-with-Git#_file_annotation ]
> | Another cool thing about Git is that it doesn’t track file renames
> | explicitly. It records the snapshots and then tries to figure out what
> | was renamed implicitly, after the fact. One of the interesting
> | features of this is that you can ask it to figure out all sorts of
> | code movement as well. If you pass -C to git blame, Git analyzes the
> | file you’re annotating and tries to figure out where snippets of code
> | within it originally came from if they were copied from elsewhere.
> `----
> That's a fantastic feature.
As a historic note, the awful performance of 'git blame' particularly on
files like src/xdisp.c was a strong argument against moving Emacs
development to Git.
I was conceited enough to let myself be goaded in promising to do
something about it. A number of others have put in fixes since then; my
original work was good for about a factor of 5 in performance on files
like that.
commit 7e6ac6e4391caa0fc379cb699013d503380e4214
Author: David Kastrup <dak@gnu.org>
Date: Sat Apr 26 01:56:49 2014 +0200
blame: large-scale performance rewrite
Another commit even mentions src/xdisp.c explicitly:
commit 4874f544f1574a55d787339a6455f524768c1b5d
Author: David Kastrup <dak@gnu.org>
Date: Sun May 4 19:13:57 2014 +0200
Bump core.deltaBaseCacheLimit to 96m
The default of 16m causes serious thrashing for large delta chains
combined with large files.
Here are some benchmarks (pu variant of git blame):
time git blame -C src/xdisp.c >/dev/null
for a repository of Emacs repacked with git gc --aggressive (v1.9,
resulting in a window size of 250) located on an SSD drive. The file in
question has about 30000 lines, 1Mb of size, and a history with about
2500 commits.
[...]
--
David Kastrup
- Dependency on tex-buf.el, Ikumi Keita, 2022/03/18
- Re: Dependency on tex-buf.el, Ikumi Keita, 2022/03/18
- Re: Dependency on tex-buf.el, David Kastrup, 2022/03/18
- Re: Dependency on tex-buf.el, Ikumi Keita, 2022/03/19
- Re: Dependency on tex-buf.el,
David Kastrup <=
- Re: Dependency on tex-buf.el, Uwe Brauer, 2022/03/19
- Re: Dependency on tex-buf.el, David Kastrup, 2022/03/19
- Re: Dependency on tex-buf.el, Uwe Brauer, 2022/03/19
- Re: Dependency on tex-buf.el, David Kastrup, 2022/03/19
- Re: Dependency on tex-buf.el, Uwe Brauer, 2022/03/20
- Re: Dependency on tex-buf.el, Tassilo Horn, 2022/03/21
- Re: Dependency on tex-buf.el, Uwe Brauer, 2022/03/21
- Re: Dependency on tex-buf.el, Tassilo Horn, 2022/03/21
- Re: Dependency on tex-buf.el, Ikumi Keita, 2022/03/27
- Re: Dependency on tex-buf.el, Tassilo Horn, 2022/03/28