Re: DWIM "git checkout frotz" to "git checkout -b frotz origin/frotz"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Jun 6, 2010 at 10:32, Clemens Buchacher <drizzd@xxxxxx> 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@xxxxxx> 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.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]