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: On the popularity of git Date: Tue, 03 Nov 2015 09:39:28 +0100 Message-ID: <87twp3zdbz.fsf@fencepost.gnu.org> References: <20151028223252.GD2538@acm.fritz.box> <87vb9qd2h4.fsf@wanadoo.es> <20151028235340.GE2538@acm.fritz.box> <87ziz213wx.fsf@fencepost.gnu.org> <20151029123554.GB2510@acm.fritz.box> <87h9l995ec.fsf@fencepost.gnu.org> <20151029170237.GF2510@acm.fritz.box> <22068.12941.199944.979963@turnbull.sk.tsukuba.ac.jp> <20151031165007.GA20747@acm.fritz.box> <5634F352.90303@yandex.ru> <87d1vsjbvf.fsf@thinkpad.rath.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1446541407 25396 80.91.229.3 (3 Nov 2015 09:03:27 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 3 Nov 2015 09:03:27 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Nov 03 10:03:27 2015 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 1ZtXV0-0004is-WE for ged-emacs-devel@m.gmane.org; Tue, 03 Nov 2015 10:03:27 +0100 Original-Received: from localhost ([::1]:46474 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZtXV0-0000Pz-4U for ged-emacs-devel@m.gmane.org; Tue, 03 Nov 2015 04:03:26 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:33692) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZtXUv-0000MZ-3g for emacs-devel@gnu.org; Tue, 03 Nov 2015 04:03:21 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZtXUt-0007CV-Up for emacs-devel@gnu.org; Tue, 03 Nov 2015 04:03:20 -0500 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:53170) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZtXUt-0007CR-SP for emacs-devel@gnu.org; Tue, 03 Nov 2015 04:03:19 -0500 Original-Received: from localhost ([127.0.0.1]:38755 helo=lola) by fencepost.gnu.org with esmtp (Exim 4.82) (envelope-from ) id 1ZtXUt-0003od-75 for emacs-devel@gnu.org; Tue, 03 Nov 2015 04:03:19 -0500 Original-Received: by lola (Postfix, from userid 1000) id D7D41DF8D9; Tue, 3 Nov 2015 09:39:28 +0100 (CET) In-Reply-To: <87d1vsjbvf.fsf@thinkpad.rath.org> (Nikolaus Rath's message of "Mon, 02 Nov 2015 14:05:24 -0800") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) 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:193129 Archived-At: Nikolaus Rath writes: > On Oct 31 2015, Dmitry Gutov wrote: >>> Being a user of git involves learning its internal structures. >>> (Note the people recently emphasising the internal representation of a >>> git branch to me, talking about pointers to its tip, and so on. I >>> really don't want to have to know about such stuff.) >> >> To a reasonably proficient Git user, that sounds like "I don't want to >> know what graphs are" > > Yes, you nailed the problem. To be a reasonably proficient git user, you > have to learn its internal representation Not really. All you need to know is that a commit is defined by a bit of data (commit message, author, commit date, and so on), its parent commit(s) and a snapshot of the work tree. How those are represented in detail is not really of much concern, and a particular implementation might choose to use some quite different underlying database than the standard repository does. > (which isn't surprising, because as someone else said, the internal > representation is really the git's main selling point). Git changed the internal representation several times over the years, using different packing formats and stuff. The main selling point is rather the simplicity (and stability) of the underlying data model. Which is exactly the reason it's easy to plug together various pieces of "plumbing" in order to arrive at some new porcelain like "git-filter-branch" or similar: many Git utilities, at least initially, were plugged together using shell scripts and it is rather few specialized C programs (and modules) which actually need to bother with the internal representation. -- David Kastrup