git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jacob Helwig <jacob.helwig@gmail.com>
To: Clemens Buchacher <drizzd@aon.at>
Cc: Jeff King <peff@peff.net>,
	Sverre Rabbelier <srabbelier@gmail.com>,
	git@vger.kernel.org, Peter Rabbitson <ribasushi@cpan.org>
Subject: Re: DWIM "git checkout frotz" to "git checkout -b frotz origin/frotz"
Date: Sun, 6 Jun 2010 14:26:08 -0700	[thread overview]
Message-ID: <AANLkTilvHl-8eA6CbEDs4ty3h0h670L_enGsXunHxaPE@mail.gmail.com> (raw)
In-Reply-To: <20100606173233.GA11041@localhost>

On Sun, Jun 6, 2010 at 10:32, Clemens Buchacher <drizzd@aon.at> wrote:
> On Sun, Jun 06, 2010 at 09:59:08AM -0700, Jacob Helwig wrote:
>> On Sun, Jun 6, 2010 at 09:55, Clemens Buchacher <drizzd@aon.at> wrote:
>> >
>> > I argue that people are more likely to be surprised and confused by
>> > this feature rather than being accustomed to it already. I am also
>> > waiting to hear from someone who actively uses this feature.
>> >
>>
>> I am someone that "actively" uses this feature.  I will often have
>> repositories that I use on multiple machines, and will forget which
>> remote branches I have local tracking branches for, on which machines.
>>  I'll end up just doing `git checkout $random-branch`, thinking I'm on
>> one of the machines where I've already setup the local branch, and
>> find it quite handy that Git _does_ DWIM.
>
> I see. But would it be so terrible to have to type "git checkout -t
> origin/branch" instead?
>

Given that `git checkout branch` already exists & works: Yes.

You're talking about removing a feature, so (as already pointed out)
there's a fairly high burden of proof to show that it's actually a
mis-feature, that is so dangerous/confusing that it _needs_ to be
removed.

> Also, isn't this more like "foretell what I really want" rather
> than "do what it means"? Who would guess that "git checkout
> $branch" means "create $branch tracking <random-remote>/$branch"?
>

This is very much "fortell what I really want", which is exactly what
DWIM (Do What I Mean) means (as Sverre already pointed out).  I'm not
guessing that `git checkout $branch` means `git branch -t $branch
origin/$branch && git checkout $branch`; I'm assuming that `git branch
-t $branch origin/$branch` was already done at some point in the past,
and Git is adding that bit in for me, which is what _I_ really meant
to do.

> And this is exactly _why_ it can be marginally useful if the
> foretelling is correct, but all the more confusing if it's not.
>

Other than "unexpected success", how is the DWIM behavior confusing,
given that it says exactly what it's doing when the DWIM behavior is
invoked?  I'm still not clear what the confusion you're referring to
is on this one.

  parent reply	other threads:[~2010-06-06 21:26 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-05 11:09 DWIM "git checkout frotz" to "git checkout -b frotz origin/frotz" Clemens Buchacher
2010-06-05 13:29 ` Sverre Rabbelier
2010-06-05 13:58   ` Clemens Buchacher
2010-06-05 14:03     ` Sverre Rabbelier
2010-06-05 15:02       ` Clemens Buchacher
2010-06-05 18:23         ` Nicolas Pitre
2010-06-06 16:18       ` Jeff King
2010-06-06 16:55         ` Clemens Buchacher
2010-06-06 16:59           ` Jacob Helwig
2010-06-06 17:32             ` Clemens Buchacher
2010-06-06 17:34               ` Sverre Rabbelier
2010-06-06 21:26               ` Jacob Helwig [this message]
2010-06-07 18:29                 ` Clemens Buchacher
2010-06-07 20:11                   ` Jan Krüger
2010-06-07 21:12                     ` Clemens Buchacher
2010-06-06 18:34           ` Johan Herland
2010-06-06 16:18 ` Matthieu Moy
2010-06-06 16:46   ` Clemens Buchacher
2010-06-07  6:41     ` Miles Bader
2010-06-07 18:54       ` Clemens Buchacher
2010-06-07 19:17         ` Matthieu Moy
2010-06-07 19:32           ` Clemens Buchacher
2010-06-07 19:52             ` Bruce Stephens
2010-06-08  8:07             ` Michael J Gruber
2010-06-08  8:18               ` demerphq
2010-06-08  8:37                 ` Michael J Gruber
2010-06-08  0:25         ` Miles Bader
2010-06-08  7:29           ` Clemens Buchacher
2010-06-08  7:47             ` demerphq
2010-06-08 13:04               ` Matthieu Moy
2010-06-08  7:52             ` Miles Bader
2010-06-08  7:52             ` Jeff King
2010-06-08 18:13               ` Clemens Buchacher
2010-06-07  7:53     ` Paolo Bonzini

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=AANLkTilvHl-8eA6CbEDs4ty3h0h670L_enGsXunHxaPE@mail.gmail.com \
    --to=jacob.helwig@gmail.com \
    --cc=drizzd@aon.at \
    --cc=git@vger.kernel.org \
    --cc=peff@peff.net \
    --cc=ribasushi@cpan.org \
    --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).