All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michael Haggerty <mhagger@alum.mit.edu>
To: Junio C Hamano <gitster@pobox.com>
Cc: Jeff King <peff@peff.net>, git@vger.kernel.org
Subject: Re: Bug: "git checkout -b" should be allowed in empty repo
Date: Mon, 06 Feb 2012 09:59:13 +0100	[thread overview]
Message-ID: <4F2F9661.2020606@alum.mit.edu> (raw)
In-Reply-To: <7vk440a5qw.fsf@alter.siamese.dyndns.org>

On 02/06/2012 06:30 AM, Junio C Hamano wrote:
> Jeff King <peff@peff.net> writes:
> 
>> Sure, that's one way to do it. But I don't see any point in not allowing
>> "git checkout -b" to be another way of doing it. Is there some other use
>> case for "git checkout -b" from an unborn branch? Or is there some
>> harmful outcome that can come from doing so that we need to be
>> protecting against? Am I missing something?
> 
> Mostly because it is wrong at the conceptual level to do so.
> 
> 	git checkout -b foo
> 
> is a short-hand for
> 
> 	git checkout -b foo HEAD
> 
> which is a short-hand for
> 
> 	git branch foo HEAD &&
>         git checkout foo
> 
> But the last one has no chance of working if you think about it, because
> "git branch foo $start" is a way to start a branch at $start and you need
> to have something to point at with refs/heads/foo.
> 
> So we are breaking the equivalence between these three only when HEAD
> points at an unborn branch.

You are thinking too much like a developer and not like a user.  For a user,

    git checkout -b foo

is a short-hand for

    "create and check out a branch at my current state"

and the interpretation of what that means when I am on an unborn branch
seems unambiguous.

Michael

-- 
Michael Haggerty
mhagger@alum.mit.edu
http://softwareswirl.blogspot.com/

  parent reply	other threads:[~2012-02-06  8:59 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-01-29  6:09 Bug: "git checkout -b" should be allowed in empty repo Michael Haggerty
2012-01-29  6:56 ` Junio C Hamano
2012-01-29  7:50   ` Junio C Hamano
2012-01-30  6:38   ` Michael Haggerty
2012-01-30 18:48     ` Junio C Hamano
2012-01-30 20:10       ` Junio C Hamano
2012-01-30 21:50         ` Jeff King
2012-02-06  2:06           ` Junio C Hamano
2012-02-06  2:08             ` Junio C Hamano
2012-02-06  4:30             ` Jeff King
2012-02-06  4:42               ` Andrew Ardill
2012-02-06  5:06                 ` Jeff King
2012-02-06  8:51                   ` Michael Haggerty
2012-02-06  8:57                     ` Jeff King
2012-02-06 18:17                       ` Junio C Hamano
2012-02-06 20:14                         ` Jeff King
2012-02-07  8:04                         ` Michael Haggerty
2012-02-06 18:39                 ` demerphq
2012-02-06  5:15               ` Junio C Hamano
2012-02-06  5:18                 ` Jeff King
2012-02-06  5:30                   ` Junio C Hamano
2012-02-06  5:34                     ` Junio C Hamano
2012-02-06  5:45                     ` Jeff King
2012-02-06  8:59                     ` Michael Haggerty [this message]
2012-02-06 18:31                       ` Junio C Hamano
2012-01-30 21:48       ` Jeff King
2012-02-06  1:26         ` [PATCH] branch --edit-description: protect against mistyped branch name Junio C Hamano
2012-02-06  1:27           ` Junio C Hamano
2012-02-06  4:20           ` Jeff King
2012-01-31  8:57       ` Bug: "git checkout -b" should be allowed in empty repo Michael Haggerty
2012-01-31 10:01         ` Johannes Sixt
2012-01-31 10:11           ` demerphq
2012-01-31 10:09         ` Jakub Narebski
2012-01-31 16:32           ` Michael Haggerty

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=4F2F9661.2020606@alum.mit.edu \
    --to=mhagger@alum.mit.edu \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=peff@peff.net \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.