From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Jordi =?ISO-8859-1?Q?Guti=E9rrez?= Hermoso Newsgroups: gmane.emacs.devel Subject: Re: PROPOSAL: Move to git, now that bzr is no longer a req. Date: Mon, 06 Jan 2014 12:57:49 -0500 Message-ID: <1389031069.11337.49.camel@Iris> 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="UTF-8" Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1389031268 4717 80.91.229.3 (6 Jan 2014 18:01:08 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 6 Jan 2014 18:01:08 +0000 (UTC) Cc: David Kastrup , emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Jan 06 19:01:14 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 1W0EUB-0005WR-8R for ged-emacs-devel@m.gmane.org; Mon, 06 Jan 2014 19:01:11 +0100 Original-Received: from localhost ([::1]:36620 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W0EUA-0006dT-S3 for ged-emacs-devel@m.gmane.org; Mon, 06 Jan 2014 13:01:10 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:53473) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W0ETc-0006Hv-SB for emacs-devel@gnu.org; Mon, 06 Jan 2014 13:01:09 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1W0ETR-0003wk-E8 for emacs-devel@gnu.org; Mon, 06 Jan 2014 13:00:36 -0500 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:38890) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W0ETR-0003vO-9L for emacs-devel@gnu.org; Mon, 06 Jan 2014 13:00:25 -0500 Original-Received: from beast.bic.mni.mcgill.ca ([132.206.178.199]:49593 helo=[IPv6:::1]) by fencepost.gnu.org with esmtpsa (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1W0EQy-0001hG-F8; Mon, 06 Jan 2014 12:57:52 -0500 In-Reply-To: <8361pxt7lc.fsf@gnu.org> X-Mailer: Evolution 3.4.4-3 X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::e 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:167488 Archived-At: On Mon, 2014-01-06 at 18:09 +0200, Eli Zaretskii wrote: > 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. As a point of comparsion, on my system $ time hg blame xdisp.c > foo real 0m55.426s user 0m54.083s sys 0m1.032s $ time git blame xdisp.c > foo real 3m24.979s user 3m5.920s sys 0m3.032s I suppose this is because git's data structures aren't very fast for single-file operations. The only way to get data for a single file in git is to walk the entire changelog and grab all associated tree objects looking for the blob you care about. Hg's data structures instead, changes across a single file using a so-called revlog, which is a series per-file deltas with occasional full file copies (the analogy for revlogs is video compression with key frames). - Jordi G. H.