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: Obscure error/warning/information message from git pull Date: Wed, 19 Nov 2014 16:00:58 +0100 Organization: Organization?!? Message-ID: <87sihfgrpx.fsf@fencepost.gnu.org> References: <20141114230235.GF3168@acm.acm> <20141117141123.GA4294@acm.acm> <83lhn89zxn.fsf@gnu.org> <83bno49xtw.fsf@gnu.org> <20141118224326.GA5167@acm.acm> <87mw7n8k0f.fsf@Rainer.invalid> <20141119135530.GA3986@acm.acm> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1416409308 7479 80.91.229.3 (19 Nov 2014 15:01:48 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 19 Nov 2014 15:01:48 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Nov 19 16:01:41 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 1Xr6lH-0007QI-G4 for ged-emacs-devel@m.gmane.org; Wed, 19 Nov 2014 16:01:39 +0100 Original-Received: from localhost ([::1]:58874 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xr6lH-0004Ls-5a for ged-emacs-devel@m.gmane.org; Wed, 19 Nov 2014 10:01:39 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:41303) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xr6kz-0004Kl-Gf for emacs-devel@gnu.org; Wed, 19 Nov 2014 10:01:27 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Xr6kt-0003Ih-KH for emacs-devel@gnu.org; Wed, 19 Nov 2014 10:01:21 -0500 Original-Received: from plane.gmane.org ([80.91.229.3]:48073) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xr6kt-0003IZ-E8 for emacs-devel@gnu.org; Wed, 19 Nov 2014 10:01:15 -0500 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1Xr6ks-0007Dt-2Q for emacs-devel@gnu.org; Wed, 19 Nov 2014 16:01:14 +0100 Original-Received: from x2f4a1bf.dyn.telefonica.de ([2.244.161.191]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 19 Nov 2014 16:01:14 +0100 Original-Received: from dak by x2f4a1bf.dyn.telefonica.de with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 19 Nov 2014 16:01:14 +0100 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 88 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: x2f4a1bf.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/25.0.50 (gnu/linux) Cancel-Lock: sha1:eCbNxCGkP693t84IOS20j2RWP0I= 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:177756 Archived-At: Alan Mackenzie writes: > Hello, Achim. > > On Wed, Nov 19, 2014 at 01:14:40PM +0100, Achim Gratz wrote: >> Alan Mackenzie writes: >> >> Well, given the following history (time goes from left to right): > >> >> - C - D <- foo >> >> / >> >> ... - A - B >> >> \ >> >> - E - F <- bar > > >> >> what branch commit A was made on, 'foo' or 'bar'? > >> > Quite clearly, A was committed on branch foo, since bar didn't exist at >> > that time. > >> Neither foo nor bar might even have existed at the time commit A was >> made (or even any of the other commits shown). > > OK, commit A might have been made on some other branch not in the > diagram. But commit A was made before commit B (that is what these > lines _mean_) and commit B was made before branch bar was created (and > possibly before branch foo if that was branched of of B also, rather > than being the continuation of the branch A was made on). Shrug. That's pure conjecture. The graph can end up in that manner in a variety of different ways. It's like trying to proclaim that some data structure like a linked list must have been created in a particular order. That's just not an invariant of the data structure, and it is not seminal to it, anyway. >> Again, the branch diagram tells you nothing about the sequence of >> events. > > It must do. D is based on C is based on B, and F is based on E is > based ob B, which in its turn is based on A. Commit D thus happened > after C, etc. We have a partial ordering, not a total ordering > though. The partial ordering is one of commit dates but does not have any relation to branches. > The very essence of a branch is its creation on the trunk (or other > branch) and divergence from it. Its point of creation is essential - > without it, it isn't a branch at all. It seems git simply discards > this information. So Git does not have branches. Happy? >> Branch foo consists of a label pointing at commit D and everything >> reachable from D is on that branch. > > That is where git's abstraction is broken. A is reachable from branch > bar, yet isn't on it and never has been - it's on the trunk, (or maybe > branch foo). Git does not maintain abstractions for the only sake of complicating matters. Any tangible data needs to be maintained, merged, transferred, and needs semantics for all of the possible operations on and with commits. > The practical outcome is that git doesn't keep track of your branches. Correct. Whatever information it hands out about branches, it deduces from the commit tree. > You've got to remember your branching structure (or write it on a > piece of paper) if you ever want, say, to get a list of changes made > on branch bar. Nonsense. You first define what you even mean by "on branch bar". If you mean "after branching off of master", you get the list by saying git log master..bar If you mean something else, there are other things you may say. > This is something I would expect a VCS to do for me automatically. I > think that is what the "..." in "master...bar" is all about. You are aware that ... is not the same as ..? -- David Kastrup