From: Daniel Barkalow <barkalow@iabervon.org>
To: Junio C Hamano <gitster@pobox.com>
Cc: Thomas Rast <trast@student.ethz.ch>,
Johannes Schindelin <Johannes.Schindelin@gmx.de>,
Euguess@gmail.com, Mikael Magnusson <mikachu@gmail.com>,
Matthieu Moy <Matthieu.Moy@grenoble-inp.fr>,
Jeff King <peff@peff.net>, Jay Soffian <jaysoffian@gmail.com>,
git@vger.kernel.org
Subject: Re: [PATCH/RFC] builtin-checkout: suggest creating local branch when appropriate to do so
Date: Tue, 13 Oct 2009 14:39:51 -0400 (EDT) [thread overview]
Message-ID: <alpine.LNX.2.00.0910131358000.32515@iabervon.org> (raw)
In-Reply-To: <7vljjf226t.fsf@alter.siamese.dyndns.org>
On Tue, 13 Oct 2009, Junio C Hamano wrote:
> Thomas Rast <trast@student.ethz.ch> writes:
>
> >> Or can't you go the other way, say
> >>
> >> git checkout -t $remote_tracking
> >>
> >> to create a local branch forking from the named remote tracking branch?
> >
> > Sure, but we already have that and we still failed to fix the users,
> > so FWIW, I think Dscho's right and we should try fixing the UI next.
>
> What it means is that -t was a broken attempt to help the users at the UI
> level, and I can surely see that.
>
> So we need the set of new rules, say, for 1.7.0 release. A strawman?
>
> Assume that these are the only refs that exist:
>
> refs/remotes/origin/{master,next,nitfol}
> refs/remotes/xyzzy/{frotz,nitfol}
> refs/heads/master
> refs/tags/v1.0.0
>
> #0. These will stay as is:
>
> $ git checkout mine ;# switches to the branch
> $ git checkout $any_committish^0 ;# detaches
>
> #1. These used to detach, but will create a local branch
>
> $ git checkout origin/next ;# as if with -t
> $ git checkout xyzzy/frotz ;# as if with -t (origin is not special)
>
> #2. These are allowed only when unambiguous and there is no local branch yet.
>
> $ git checkout next ;# ok
> $ git checkout frotz ;# ok (origin is not special)
> $ git checkout nitfol ;# not ok (ambiguous and origin is not special)
>
> #3. These used to detach, but what should we do?
>
> $ git checkout v1.0.0 ;# detach, or refuse???
> $ git checkout origin/master ;# detach, or refuse???
>
> I can buy 0, 1, and 2, and I think it is a minor inconvenience if we
> started refusing to detach in case #3, as people who want to detach can
> always suffix ^0 or ~0 to make it a general committish.
I suspect that a very common pattern for people who follow trees for
testing and such or who only develop in topic branches is:
$ git clone ...
$ git checkout origin/next
$ git fetch origin
$ git checkout origin/next
For people who use topic branches extensively:
$ git fetch origin
$ git checkout origin/next
(test, find issues, maybe make changes)
$ git checkout -b topic
$ git commit
(send changes)
Some people (IIRC, including Linus):
$ git checkout origin/next
(work)
$ git commit
$ git checkout -b topic
In all of these cases, the user will get a misleading "next" local branch;
in Linus's case, this branch ends up with commits from a topic branch.
For that matter, even the intended user would have problems with your
suggestion:
$ git clone ...
$ git checkout origin/next
(do some next stuff)
$ git checkout origin/master
(do some master stuff)
$ git checkout origin/next
On the second cycle, either git refuses or does something actively
confusing to this user, and the user has to learn the difference between
local branches and remote branches on the *second* cycle. IMHO, it's much
better to make users learn things at the point when they don't think they
know how to use the system, rather than when they think they understand it
and are just trying to get things done.
-Daniel
*This .sig left intentionally blank*
next prev parent reply other threads:[~2009-10-13 18:42 UTC|newest]
Thread overview: 91+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-10-05 20:46 [PATCH/RFC] builtin-checkout: suggest creating local branch when appropriate to do so Jay Soffian
2009-10-05 21:03 ` Sverre Rabbelier
2009-10-05 21:17 ` Johannes Schindelin
2009-10-05 21:26 ` Sverre Rabbelier
2009-10-05 21:57 ` Jay Soffian
2009-10-05 22:00 ` Jay Soffian
2009-10-05 22:45 ` Johannes Schindelin
2009-10-05 22:56 ` Jeff King
2009-10-06 7:32 ` Thomas Rast
2009-10-06 9:16 ` Johannes Schindelin
2009-10-06 11:36 ` Junio C Hamano
2009-10-06 12:02 ` Johannes Schindelin
2009-10-06 20:09 ` Junio C Hamano
2009-10-06 9:12 ` Johannes Schindelin
2009-10-06 9:28 ` Matthieu Moy
2009-10-06 9:41 ` Mikael Magnusson
2009-10-06 10:04 ` Johannes Schindelin
[not found] ` <0016e68fd0123a175304754694b4@google.com>
2009-10-06 16:43 ` Eugene Sajine
2009-10-06 20:33 ` Junio C Hamano
2009-10-12 7:49 ` Johannes Schindelin
2009-10-12 18:36 ` Björn Steinbrink
2009-10-12 21:40 ` Thomas Rast
2009-10-12 22:49 ` Junio C Hamano
2009-10-13 6:36 ` Thomas Rast
2009-10-13 7:16 ` Junio C Hamano
2009-10-13 8:44 ` Junio C Hamano
2009-10-13 8:51 ` Thomas Rast
2009-10-13 9:24 ` Junio C Hamano
2009-10-13 21:20 ` Johannes Schindelin
2009-10-13 21:59 ` Junio C Hamano
2009-10-13 22:06 ` Jeff King
2009-10-13 23:22 ` Johannes Schindelin
2009-10-14 1:05 ` Jay Soffian
2009-10-14 3:28 ` Junio C Hamano
2009-10-14 12:49 ` Jay Soffian
2009-10-14 19:31 ` Junio C Hamano
2009-10-25 17:44 ` Uri Okrent
2009-10-14 4:31 ` Jeff King
2009-10-14 9:56 ` Thomas Rast
2009-10-14 10:46 ` Jakub Narebski
2009-10-13 9:32 ` Johannes Sixt
2009-10-13 18:39 ` Daniel Barkalow [this message]
2009-10-13 20:53 ` Junio C Hamano
2009-10-13 21:31 ` Daniel Barkalow
2009-10-13 21:57 ` Jeff King
2009-10-13 22:46 ` Junio C Hamano
2009-10-13 23:16 ` Johannes Schindelin
2009-10-14 9:33 ` Thomas Rast
2009-10-16 11:48 ` Johannes Schindelin
2009-10-16 12:07 ` Thomas Rast
2009-10-25 17:48 ` Uri Okrent
2009-10-26 7:14 ` Junio C Hamano
2009-10-13 22:38 ` Björn Steinbrink
2009-10-18 7:58 ` Junio C Hamano
2009-10-18 8:00 ` [PATCH 1/3] check_filename(): make verify_filename() callable without dying Junio C Hamano
2009-10-18 8:01 ` [PATCH 2/3] DWIM "git checkout frotz" to "git checkout -b frotz origin/frotz" Junio C Hamano
2009-10-18 10:34 ` Nanako Shiraishi
2009-10-18 12:00 ` Björn Steinbrink
2009-10-18 20:20 ` Nanako Shiraishi
2009-10-18 22:50 ` Junio C Hamano
2009-10-19 5:58 ` Björn Steinbrink
2009-10-18 8:01 ` [PATCH 3/3] git checkout --nodwim Junio C Hamano
2009-10-18 12:40 ` Alex Riesen
2009-10-18 19:53 ` Junio C Hamano
2009-10-18 21:02 ` [PATCH] Use "--no-" prefix to switch off some of checkout dwimmery Alex Riesen
2009-10-18 22:49 ` Junio C Hamano
2009-10-19 6:07 ` Alex Riesen
2009-10-19 6:12 ` Alex Riesen
2009-10-19 6:16 ` Junio C Hamano
2009-10-19 7:17 ` Alex Riesen
2009-10-19 7:25 ` Junio C Hamano
2009-10-21 17:29 ` [PATCH 3/3] git checkout --nodwim Avery Pennarun
2009-10-21 21:21 ` Nanako Shiraishi
2009-10-21 22:14 ` Junio C Hamano
2009-10-21 22:35 ` [PATCH] git checkout --no-guess Junio C Hamano
2009-10-21 22:51 ` Avery Pennarun
2009-10-26 18:17 ` Jay Soffian
2009-10-26 18:25 ` Avery Pennarun
2009-10-22 0:27 ` [PATCH 3/3] git checkout --nodwim Johannes Schindelin
2009-10-22 7:09 ` Erik Faye-Lund
2009-10-23 8:57 ` Michael J Gruber
2009-10-24 6:35 ` Junio C Hamano
2009-10-24 14:59 ` David Roundy
2009-10-24 19:25 ` Junio C Hamano
2009-10-26 20:12 ` Johannes Schindelin
2009-10-26 20:40 ` Avery Pennarun
2009-10-26 21:26 ` Jeff King
2009-10-26 22:01 ` Avery Pennarun
2009-10-26 22:14 ` Jeff King
2009-10-26 22:28 ` Avery Pennarun
2009-10-05 22:52 ` [PATCH/RFC] builtin-checkout: suggest creating local branch when appropriate to do so Jeff King
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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=alpine.LNX.2.00.0910131358000.32515@iabervon.org \
--to=barkalow@iabervon.org \
--cc=Euguess@gmail.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=Matthieu.Moy@grenoble-inp.fr \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jaysoffian@gmail.com \
--cc=mikachu@gmail.com \
--cc=peff@peff.net \
--cc=trast@student.ethz.ch \
/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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).