* checkout -b remotes/origin/<branch> should not work
@ 2017-05-14 3:52 Stefan Beller
2017-05-14 4:00 ` Jeff King
0 siblings, 1 reply; 3+ messages in thread
From: Stefan Beller @ 2017-05-14 3:52 UTC (permalink / raw)
To: git@vger.kernel.org
NEEDSWORK:
checkout -b remotes/origin/<branch> should not work, unless force is
given (maybe?)
(I just run into that, now I have a remote tracking branch that points
at my detached HEAD. Oh well.)
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: checkout -b remotes/origin/<branch> should not work
2017-05-14 3:52 checkout -b remotes/origin/<branch> should not work Stefan Beller
@ 2017-05-14 4:00 ` Jeff King
2017-05-14 8:00 ` Junio C Hamano
0 siblings, 1 reply; 3+ messages in thread
From: Jeff King @ 2017-05-14 4:00 UTC (permalink / raw)
To: Stefan Beller; +Cc: git@vger.kernel.org
On Sat, May 13, 2017 at 08:52:37PM -0700, Stefan Beller wrote:
> NEEDSWORK:
>
> checkout -b remotes/origin/<branch> should not work, unless force is
> given (maybe?)
>
> (I just run into that, now I have a remote tracking branch that points
> at my detached HEAD. Oh well.)
To be pedantic, you have a local branch with a funny name that points to
your detached HEAD. :)
I think this problem extends beyond "remotes/". The worst is:
git checkout -b HEAD
but there are many confusing variants:
git checkout -b refs/heads/foo
git checkout -b tags/v1.0
etc. Those are all perfectly legal names, but almost certainly not what
the user intended. I think the plumbing should continue to allow them,
but I wouldn't object to some common-sense think-o protections in the
"checkout -b" plumbing (especially if it could be disabled for power
users).
-Peff
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: checkout -b remotes/origin/<branch> should not work
2017-05-14 4:00 ` Jeff King
@ 2017-05-14 8:00 ` Junio C Hamano
0 siblings, 0 replies; 3+ messages in thread
From: Junio C Hamano @ 2017-05-14 8:00 UTC (permalink / raw)
To: git
Jeff King <peff@peff.net> writes:
> I think this problem extends beyond "remotes/". The worst is:
>
> git checkout -b HEAD
>
> but there are many confusing variants:
>
> git checkout -b refs/heads/foo
> git checkout -b tags/v1.0
>
> etc. Those are all perfectly legal names, but almost certainly not what
> the user intended. I think the plumbing should continue to allow them,
> but I wouldn't object to some common-sense think-o protections in the
> "checkout -b" plumbing (especially if it could be disabled for power
> users).
Yup. I suspect that the last one has uses (for those who may want
to build on v1.0 tag it is conceivable that a local branch they use
for it is named like so), but I agree that anything that begins with
refs/* is not something any sane person would want to use.
sanity.branchname configuration or something that tells "checkout"
and "branch" Porcelain commands to barf on an attempt to create such
refnames does not sound too bad, and making it on by default may not
even be a bad idea. But that leads me to say it may not even need
to be a configurable thing (people who DO want funny names can
already and still use the plumbing).
In any case, no command after such a change should forbid checking
out such a funny-named branch if it already exists. We should
complain only on (an attempted) creation.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2017-05-14 8:00 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-05-14 3:52 checkout -b remotes/origin/<branch> should not work Stefan Beller
2017-05-14 4:00 ` Jeff King
2017-05-14 8:00 ` Junio C Hamano
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.