From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Alan Mackenzie Newsgroups: gmane.emacs.devel Subject: Re: Obscure error/warning/information message from git pull Date: Mon, 17 Nov 2014 14:11:23 +0000 Message-ID: <20141117141123.GA4294@acm.acm> References: <20141114120604.GA3859@acm.acm> <87389mkjwo.fsf@thinkpad-t440p.tsdh.org> <20141114141434.GM3565@embecosm.com> <20141114180521.GA3168@acm.acm> <20141114230235.GF3168@acm.acm> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1416233542 1272 80.91.229.3 (17 Nov 2014 14:12:22 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 17 Nov 2014 14:12:22 +0000 (UTC) Cc: emacs-devel@gnu.org To: Sergey Organov Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Nov 17 15:12: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 1XqN2L-0004I6-SJ for ged-emacs-devel@m.gmane.org; Mon, 17 Nov 2014 15:12:14 +0100 Original-Received: from localhost ([::1]:48089 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XqN2L-0003DX-7i for ged-emacs-devel@m.gmane.org; Mon, 17 Nov 2014 09:12:13 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:37056) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XqN2D-0003CQ-KY for emacs-devel@gnu.org; Mon, 17 Nov 2014 09:12:11 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XqN26-0000dh-LR for emacs-devel@gnu.org; Mon, 17 Nov 2014 09:12:05 -0500 Original-Received: from colin.muc.de ([193.149.48.1]:37797 helo=mail.muc.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XqN26-0000dL-BD for emacs-devel@gnu.org; Mon, 17 Nov 2014 09:11:58 -0500 Original-Received: (qmail 17567 invoked by uid 3782); 17 Nov 2014 14:11:56 -0000 Original-Received: from acm.muc.de (pD95199DC.dip0.t-ipconnect.de [217.81.153.220]) by colin.muc.de (tmda-ofmipd) with ESMTP; Mon, 17 Nov 2014 15:11:55 +0100 Original-Received: (qmail 4663 invoked by uid 1000); 17 Nov 2014 14:11:23 -0000 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Delivery-Agent: TMDA/1.1.12 (Macallan) X-Primary-Address: acm@muc.de X-detected-operating-system: by eggs.gnu.org: FreeBSD 8.x X-Received-From: 193.149.48.1 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:177409 Archived-At: Hello, Sergey. On Mon, Nov 17, 2014 at 02:54:06PM +0300, Sergey Organov wrote: > Alan Mackenzie writes: > >> Because in GIT commits are not on a branch. All commits are arranged into > >> DAG, and branch is just a pointer into the DAG. Any given commit is > >> either reachable from given branch or not. It's that simple. > > I think you're just playing with words, here. We all know what a branch > > is, and git knows which revisions are on which branch (or branches?), > You pretend you don't understand what I said above? I didn't understand when I wrote it, I think I do now. You want to use "branch" to mean what people like me would call "branch tip" or "branch head". This change in meaning can only lead to confusion and difficulties communicating. > It's not for playing with words. One better speaks "GIT language" if he > wants to be efficient with GIT. I looked in the git glossary, and that confirmed that the official usage of "branch" is as I have used and continue to use it. > Doing otherwise is, well, like speaking procedural in functional > language... If you use "branch" for what I call "branch head", what term do you use for what I call "branch"? It strikes me that the git people have failed to form working abstractions. In every other VCS system I've used, "branch" is a clean abstraction with the same meaning. In git, it is anything but clean - the bifurcation of the (abstract) branch emacs-24 into remotes/origin/emacs-24 and emacs-24 itself destroys the abstraction - people using it are forced to think in terms of the implementation, and are forced to do additional work (e.g. git merge; git checkout emacs-24; git merge; git checkout master) to achieve what is automatic in, say, Mercurial. > > otherwise your command below couldn't work. > They could, because there is the DAG. > >> Try: > >> $ git log --oneline --decorate emacs24 ^master > >> that will show all commits that are reachable from 'emacs24' but not > >> reachable from 'master'. > > That's very impressive, but not what I want. I want to see all recent > > commits together, each one annotated with which branch it's on. That's > > surely not too much to ask for. I want annotation, not filtering. > Did you try my another suggestion then? I can't remember. I'm still very confused about git, and what I have and haven't tried. Somebody suggested a form of "git log" where an approximation to branches was displayed, but rather poorly; it was described by the manual in terms of how it was implemented rather than a user abstraction. > $ git show-branch emacs24 master Just tried that; it's interesting! Thanks. Maybe there's some way I can persuade it to display the commit date and committer too. Then I'll have all the essential information about commits together. > -- > Sergey. -- Alan Mackenzie (Nuremberg, Germany).