From: Jeff King <peff@peff.net>
To: Nicolas Pitre <nico@fluxnic.net>
Cc: Sverre Rabbelier <srabbelier@gmail.com>,
Junio C Hamano <gitster@pobox.com>,
Git List <git@vger.kernel.org>, Ron1 <ron1@flownet.com>,
Jacob Helwig <jacob.helwig@gmail.com>
Subject: Re: master^ is not a local branch -- huh?!?
Date: Sat, 30 Jan 2010 03:59:57 -0500 [thread overview]
Message-ID: <20100130085957.GA20112@coredump.intra.peff.net> (raw)
In-Reply-To: <alpine.LFD.2.00.1001291641200.1681@xanadu.home>
On Fri, Jan 29, 2010 at 04:51:18PM -0500, Nicolas Pitre wrote:
> > Using a detached head is a more advanced feature than wanting to
> > checkout a remote branch locally, creating a local tracking branch. As
> > such, 'git checkout origin/topic' now means the same as 'git checkout
> > -t origin/topic', and you can get the old behavior back by doing 'git
> > checkout origin/topic^0'.
>
> What purpose does this "feature" serve? Making sure people remain
> stupid and get even more confused when the special dwimery doesn't work
> because they don't know the difference between a local branch and a
> remote tracking branch?
>
> And now people will be left wondering why after a fetch they don't get
> the latest stuff when they do "git checkout topic" again. Is this any
> better?
I am entering the discussion a bit late, and things have moved on from
this point, but I wanted to mention that I have in the past made the
same argument that you have in your second paragraph (that you leave
users _more_ confused after a fetch), but somebody (I think Jay) managed
to convince me otherwise.
The saving feature is that we now print out the symmetric difference
information between a branch and its upstream during checkout. So the
user experience looks like:
$ git checkout topic
Branch topic set up to track remote branch topic from origin.
Switched to a new branch 'topic'
... time passes ...
$ git fetch
...
9f137a4..22ac6a6 topic -> origin/topic
$ git checkout topic
Switched to branch 'topic'
Your branch is behind 'origin/topic' by 6 commits, and can be fast-forwarded.
So I think it is not quite as bad as at least I had originally thought.
There are still a few rough edges, though:
1. If I stay on the 'topic' branch and run "git fetch", then I don't
see the checkout message. If I don't understand that a local branch
has been created, I might expect the new changes to be present. But
they're not. If I do a pull instead, it does "just work", even if I
am clueless about the local branch.
I wonder if a "fetch" which updates the upstream branch of the
current HEAD should print something like the "Your branch is
behind..." message.
2. If I am clueless that the local branch exists, I can see that there
are new changes that I can "fast forward". But if I am clueless
about local branches, do I know that means I need to run "git merge
origin/topic"? However, I can't think of an improved message that
would make the situation clear without adding a bunch of annoying
text.
-Peff
next prev parent reply other threads:[~2010-01-30 9:00 UTC|newest]
Thread overview: 118+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-01-29 20:20 master^ is not a local branch -- huh?!? Ron1
2010-01-29 20:27 ` Jacob Helwig
2010-01-29 20:35 ` Sverre Rabbelier
2010-01-29 20:38 ` Jacob Helwig
2010-01-29 20:48 ` Junio C Hamano
2010-01-29 20:56 ` Sverre Rabbelier
2010-01-29 21:09 ` [PATCH] checkout: warn about 'branch name' rather than 'local branch' Sverre Rabbelier
2010-01-29 21:19 ` [PATCH] checkout: Fix test for s/local branch/branch name/ change Jacob Helwig
2010-01-29 21:20 ` Sverre Rabbelier
2010-01-29 21:40 ` [PATCH] checkout: warn about 'branch name' rather than 'local branch' Nicolas Pitre
2010-01-29 21:50 ` Ron Garret
2010-01-29 21:42 ` Junio C Hamano
2010-01-29 21:45 ` Sverre Rabbelier
2010-01-29 21:35 ` master^ is not a local branch -- huh?!? Junio C Hamano
2010-01-29 21:20 ` Nicolas Pitre
2010-01-29 21:21 ` Sverre Rabbelier
2010-01-29 21:29 ` Nicolas Pitre
2010-01-29 21:32 ` Sverre Rabbelier
2010-01-29 21:51 ` Nicolas Pitre
2010-01-29 21:58 ` Junio C Hamano
2010-01-29 22:00 ` Sverre Rabbelier
2010-01-29 22:34 ` Nicolas Pitre
2010-01-29 22:39 ` Junio C Hamano
2010-01-29 22:46 ` Jacob Helwig
2010-01-29 23:43 ` Nicolas Pitre
2010-01-30 0:14 ` Junio C Hamano
2010-01-30 0:18 ` Sverre Rabbelier
2010-01-30 0:29 ` Junio C Hamano
2010-01-30 0:35 ` Sverre Rabbelier
2010-01-30 0:38 ` Michael Witten
2010-01-30 0:39 ` Nicolas Pitre
2010-01-30 1:01 ` Mark Lodato
2010-01-30 1:22 ` Nicolas Pitre
2010-01-30 2:38 ` Ron Garret
2010-01-30 2:59 ` Junio C Hamano
2010-01-30 3:26 ` Ron Garret
2010-01-30 4:03 ` Nicolas Pitre
2010-01-30 5:06 ` Jay Soffian
2010-01-30 5:09 ` Junio C Hamano
2010-01-30 4:52 ` Jay Soffian
2010-01-30 5:15 ` Nicolas Pitre
2010-01-30 5:21 ` Junio C Hamano
2010-01-30 6:25 ` Ron Garret
2010-01-30 18:25 ` Junio C Hamano
2010-01-30 5:45 ` Jay Soffian
2010-01-30 5:18 ` Junio C Hamano
2010-01-30 6:23 ` Ron Garret
2010-01-30 2:40 ` Mark Lodato
2010-01-30 3:11 ` Nicolas Pitre
2010-01-30 3:59 ` Mark Lodato
2010-01-30 4:39 ` Nicolas Pitre
2010-01-30 5:05 ` Nicolas Pitre
2010-01-30 5:11 ` Jay Soffian
2010-01-30 5:25 ` Nicolas Pitre
2010-01-30 5:53 ` Mark Lodato
2010-01-30 6:03 ` Junio C Hamano
2010-01-30 8:59 ` Jeff King [this message]
2010-01-30 18:40 ` Ron Garret
2010-01-29 23:16 ` A Large Angry SCM
2010-01-29 21:49 ` Junio C Hamano
2010-01-30 2:13 ` Johannes Schindelin
2010-01-30 3:15 ` Nicolas Pitre
2010-01-29 20:35 ` Johannes Schindelin
2010-01-29 21:16 ` Ron1
2010-01-29 21:25 ` Jacob Helwig
2010-01-29 21:43 ` Ron Garret
2010-01-29 21:59 ` Junio C Hamano
2010-01-29 22:18 ` Ron Garret
2010-01-31 7:32 ` Junio C Hamano
2010-01-29 20:32 ` Octavio Alvarez
2010-01-29 21:34 ` Ron Garret
2010-01-29 22:32 ` Octavio Alvarez
2010-01-29 22:47 ` Ron Garret
2010-01-29 23:05 ` Octavio Alvarez
2010-01-29 23:12 ` Junio C Hamano
2010-01-29 23:30 ` Ron Garret
2010-01-29 23:28 ` Julian Phillips
2010-01-30 0:14 ` Ron Garret
2010-01-30 0:18 ` Ron Garret
2010-01-30 19:02 ` Junio C Hamano
2010-01-30 19:24 ` Ron Garret
2010-01-29 20:36 ` Scott R. Godin
2010-01-29 21:24 ` Ron Garret
2010-01-29 21:28 ` Sverre Rabbelier
2010-01-29 21:40 ` Ron Garret
2010-01-29 21:54 ` Junio C Hamano
2010-01-29 22:12 ` Ron Garret
2010-01-30 0:33 ` Michael Witten
2010-01-30 3:06 ` Junio C Hamano
2010-01-30 6:16 ` Ron Garret
2010-01-30 6:45 ` Junio C Hamano
2010-01-30 7:31 ` Ron Garret
2010-01-30 8:02 ` Junio C Hamano
2010-01-30 8:56 ` Ron Garret
-- strict thread matches above, loose matches on Subject: below --
2010-02-01 11:52 Steve Diver
2010-02-01 17:38 ` Junio C Hamano
2010-02-01 17:58 ` Sergei Organov
2010-02-01 22:52 ` Ron Garret
2010-02-01 23:01 ` Petr Baudis
2010-02-01 23:25 ` Nicolas Pitre
2010-02-01 23:37 ` Junio C Hamano
2010-02-01 23:56 ` Ron Garret
2010-02-02 0:15 ` Petr Baudis
2010-02-02 0:45 ` Ron Garret
2010-02-02 0:53 ` Junio C Hamano
2010-02-02 1:12 ` Ron Garret
2010-02-02 19:19 ` J. Bruce Fields
2010-02-02 22:04 ` Ron Garret
2010-02-03 18:27 ` J. Bruce Fields
2010-02-02 4:05 ` Nicolas Pitre
2010-02-02 5:23 ` Ron Garret
2010-02-02 5:43 ` Nicolas Pitre
2010-02-02 21:07 ` tytso
2010-02-02 0:26 ` Junio C Hamano
2010-02-02 0:21 ` Junio C Hamano
2010-02-01 18:12 ` Nicolas Pitre
2010-02-01 18:27 ` Jay Soffian
2010-02-01 22:34 ` Steve Diver
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100130085957.GA20112@coredump.intra.peff.net \
--to=peff@peff.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jacob.helwig@gmail.com \
--cc=nico@fluxnic.net \
--cc=ron1@flownet.com \
--cc=srabbelier@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).