Thread (2 messages) 2 messages, 2 authors, 2020-12-18

Re: [PATCH] clone: in protocol v2, use remote's default branch

From: Junio C Hamano <hidden>
Date: 2020-12-16 20:57:23

Jeff King [off-list ref] writes:
I think:

  git checkout --guess origin

would make sense to dereference origin/HEAD to "foo", as if we had said
"git checkout foo". That's the explicit part that seems safe. My
question is whether:

  git checkout origin

should likewise do so.
I see.  I think "--guess" is by default true, so unless you have
checkout.guess=false configured, my answer to the above question is
yes.
As you note, one can always use --detach to make
their intention clear, and checkout is a porcelain, so we are OK to
change it. But would users find that annoying? I frequently use "git
checkout origin" to get a detached HEAD pointing at your master (e.g.,
because I want to reproduce a bug, or do a "something like this..."
patch). I'm sure I could retrain my fingers, but I wonder if I'm not the
only one.
My fingers say "git checkout X^0" instead of "--detach" when I want
to detach for any value of X (e.g. "HEAD", "v2.28.0").  But I do
understand people like to be implicit when they can.
Doing it for only an explicit "--guess" turns that feature into a
tri-state (explicitly off, explicitly on, or "implicit, so be a little
more conservative"). Which perhaps is harder to explain, but I think
cleanly adds the new feature in a consistent way, without really
changing any existing behavior.
Hmmmm...  I do not offhand know if that is a good idea or not.
Related, I assume that:

  git checkout --guess origin/foo
  git checkout origin/foo

should behave the same as their "origin" or "origin/HEAD" counterparts
for consistency (obviously making "foo" in the former case, and either
detaching or making "foo" in the second case, depending on what you
think of the earlier paragraphs).
I think that is what I said in the "what would happen if we tweaked"
paragraph about using origin/ prefix as a disambiguator?  Then yes,
I think we are in agreement.

Thanks.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help