From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: Obscure error/warning/information message from git pull Date: Sat, 15 Nov 2014 11:53:22 +0200 Message-ID: <83vbmgg57x.fsf@gnu.org> References: <20141114120604.GA3859@acm.acm> <87389mkjwo.fsf@thinkpad-t440p.tsdh.org> <20141114141434.GM3565@embecosm.com> <20141114180521.GA3168@acm.acm> <20141114230235.GF3168@acm.acm> <87lhncoqrp.fsf@fencepost.gnu.org> <83389khn1g.fsf@gnu.org> <87h9y0omii.fsf@fencepost.gnu.org> Reply-To: Eli Zaretskii NNTP-Posting-Host: plane.gmane.org X-Trace: ger.gmane.org 1416045254 3308 80.91.229.3 (15 Nov 2014 09:54:14 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 15 Nov 2014 09:54:14 +0000 (UTC) Cc: emacs-devel@gnu.org To: David Kastrup Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Nov 15 10:54:07 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 1Xpa3S-0004ft-RL for ged-emacs-devel@m.gmane.org; Sat, 15 Nov 2014 10:54:06 +0100 Original-Received: from localhost ([::1]:39665 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xpa3S-0003xZ-Gv for ged-emacs-devel@m.gmane.org; Sat, 15 Nov 2014 04:54:06 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:55221) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xpa3J-0003xJ-Mm for emacs-devel@gnu.org; Sat, 15 Nov 2014 04:54:03 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Xpa3D-00007X-Oa for emacs-devel@gnu.org; Sat, 15 Nov 2014 04:53:57 -0500 Original-Received: from mtaout25.012.net.il ([80.179.55.181]:56550) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xpa31-00006Y-7D; Sat, 15 Nov 2014 04:53:39 -0500 Original-Received: from conversion-daemon.mtaout25.012.net.il by mtaout25.012.net.il (HyperSendmail v2007.08) id <0NF200G00R241A00@mtaout25.012.net.il>; Sat, 15 Nov 2014 11:49:14 +0200 (IST) Original-Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout25.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0NF200DKORA2TT20@mtaout25.012.net.il>; Sat, 15 Nov 2014 11:49:14 +0200 (IST) In-reply-to: <87h9y0omii.fsf@fencepost.gnu.org> X-012-Sender: halo1@inter.net.il X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 80.179.55.181 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:177158 Archived-At: > From: David Kastrup > Cc: emacs-devel@gnu.org > Date: Sat, 15 Nov 2014 10:12:37 +0100 > > >> git log --all --source > > > > This has the disadvantage of showing the branches in the obscure > > refs/foo/bar/branch format. Its advantage (AFAIK) is that it will > > also show commits on remote branches that are not (yet) tracked by the > > repo (please correct me if I'm wrong). > > git cannot magically show anything that isn't in the repo. It is unclear to me, at my current level of knowledge, what exactly "is in the repo". I didn't see that explained in detail anywhere. For example, "git clone" is advertised as "clone a repository", but that evidently only "fully" clones the master branch; other branches won't even be updated by the following "git pull"s unless you say "git checkout BRANCH" once (or give some other command that has the same effect). Then what exactly is brought downstream by 'clone', and why is it called "repository" rather than "branch"? Furthermore, even if you have other branches tracked, "git pull" evidently won't update them as it does with the current branch, since switching to another branch after a pull will cheerfully tell you that you are behind the branch tip and need another "git pull" to fix that. Then what exactly does "branch tracking" mean, by default? These and other similar complexities stand in the way of my understanding of what exactly do I have in my clone of the repository, and what I don't have. It is all the more perplexing, since (AFAIU) the repo met-data is (or includes) the history DAG, where (AFAIK) branches are all interwoven in a single graph. So how come a 'pull' doesn't update the whole DAG, and if it does, why do I need to do something in addition to have all my branches updated? > You are probably thinking of git showing remote-tracking branches > (those are always destructively updated from the remote reference > when fetching) as well as local branches (which may or may not have > a remote upstream). I was talking about local branches that track remote ones. (And "remote-tracking", btw, is a term that should have not been there, because it unnecessarily muddies the water. I suggest to refrain from using it.)