From: Junio C Hamano <gitster@pobox.com>
To: Namikaze Minato <LLoydsensei+git@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: git-switch history and checkout compatibility
Date: Wed, 28 Jun 2023 09:39:46 -0700 [thread overview]
Message-ID: <xmqqa5wjee25.fsf@gitster.g> (raw)
In-Reply-To: <CACmJb3xWh+0BR_V6sxfMK7iMSdWfvY9d2rjt1hnZhFw70zWweA@mail.gmail.com> (Namikaze Minato's message of "Wed, 28 Jun 2023 15:03:22 +0200")
Namikaze Minato <LLoydsensei+git@gmail.com> writes:
> I have trouble with getting used to git-switch instead of
> git-checkout, but have even more trouble to get people to adopt
> it.
>
> Please consider the two following git-switch statements:
>
> git switch remote/branch # fatal: a branch is expected, got remote
> branch 'remote/branch'
> #and
> git switch -d remote/branch
> git switch master
> git switch - # fatal: a branch is expected, got commit 'commit_id_here'
>
> Both as retro-compatibility with checkout and for user-friendliness, I
> would expect both to work.
I wasn't among the primary advocates to add "switch/restore" pair
for those people who felt "checkout" was overloaded, and I may be
misremembering why they decided to deviate from what "checkout"
(one that checks out a branch, not the one that checks out paths)
did in these two cases. Having said that ...
* I suspect that requiring an explicit "--detach" is deliberate, as
they were trying to make "newbie friendlier" version of checkout.
* I am on the fence about the latter one. While I think it is a
bug if "switch -" and "switch @{-1}" did not work exactly like
"checkout @{-1}", combined with the previous point of requiring
to be explicit when detaching HEAD, "switch -" that tries to go
back to a detached state may be justifiable---it stops you in
order to avoid accidental detaching of HEAD.
> Maybe a setting checkout.autoDetach could control such behavior if the
> current implementation should be kept?
>
> What do you think?
Personally, I think those who are familiar with and expert enough on
Git and do not feel uneasy working on detached HEAD can and should
just use "checkout" not "switch/restore", but that may be just me.
Thanks.
next prev parent reply other threads:[~2023-06-28 16:40 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CACmJb3yoHagaU1wb4qRT-nZV4Wptao8boaUXCAYrFxfrxcmUYg@mail.gmail.com>
2023-06-28 13:03 ` git-switch history and checkout compatibility Namikaze Minato
2023-06-28 16:39 ` Junio C Hamano [this message]
2023-08-01 17:23 ` Namikaze Minato
2023-08-01 18:28 ` Junio C Hamano
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=xmqqa5wjee25.fsf@gitster.g \
--to=gitster@pobox.com \
--cc=LLoydsensei+git@gmail.com \
--cc=git@vger.kernel.org \
/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).