From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: David Kastrup Newsgroups: gmane.emacs.devel Subject: Re: PROPOSAL: Move to git, now that bzr is no longer a req. Date: Tue, 07 Jan 2014 20:17:15 +0100 Organization: Organization?!? Message-ID: <87iotvppok.fsf@fencepost.gnu.org> References: <20140102095347.6834E381D0C@snark.thyrsus.com> <87fvp6bdd9.fsf_-_@ktab.red-bean.com> <8761q1ljny.fsf@gmail.com> <20140103175006.GE17261@thyrsus.com> <87ppo6u3mr.fsf@mid.deneb.enyo.de> <874n5i40th.fsf@mid.deneb.enyo.de> <87y52tupp3.fsf@fencepost.gnu.org> <8361pxt7lc.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Trace: ger.gmane.org 1389122263 25073 80.91.229.3 (7 Jan 2014 19:17:43 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 7 Jan 2014 19:17:43 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Jan 07 20:17:49 2014 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1W0c9s-0002gG-Ld for ged-emacs-devel@m.gmane.org; Tue, 07 Jan 2014 20:17:48 +0100 Original-Received: from localhost ([::1]:42407 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W0c9s-0000KJ-5N for ged-emacs-devel@m.gmane.org; Tue, 07 Jan 2014 14:17:48 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:50398) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W0c9j-0000Jd-4Q for emacs-devel@gnu.org; Tue, 07 Jan 2014 14:17:45 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1W0c9d-00052K-9I for emacs-devel@gnu.org; Tue, 07 Jan 2014 14:17:39 -0500 Original-Received: from plane.gmane.org ([80.91.229.3]:40952) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W0c9d-000528-2W for emacs-devel@gnu.org; Tue, 07 Jan 2014 14:17:33 -0500 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1W0c9X-0001tx-7h for emacs-devel@gnu.org; Tue, 07 Jan 2014 20:17:27 +0100 Original-Received: from x2f4af83.dyn.telefonica.de ([2.244.175.131]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 07 Jan 2014 20:17:27 +0100 Original-Received: from dak by x2f4af83.dyn.telefonica.de with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 07 Jan 2014 20:17:27 +0100 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 43 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: x2f4af83.dyn.telefonica.de X-Face: 2FEFf>]>q>2iw=B6, xrUubRI>pR&Ml9=ao@P@i)L:\urd*t9M~y1^:+Y]'C0~{mAl`oQuAl \!3KEIp?*w`|bL5qr,H)LFO6Q=qx~iH4DN; i"; /yuIsqbLLCh/!U#X[S~(5eZ41to5f%E@'ELIi$t^ Vc\LWP@J5p^rst0+('>Er0=^1{]M9!p?&:\z]|;&=NP3AhB!B_bi^]Pfkw User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) Cancel-Lock: sha1:gdsQ4wv1Fsdww5Zcl0HhzUQBcnY= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 80.91.229.3 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:167662 Archived-At: Eli Zaretskii writes: >> From: David Kastrup >> Date: Mon, 06 Jan 2014 15:53:28 +0100 >> >> Richard Stallman 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