RE: switch requires --detach [[Re: What actually is a branch]]
From: Randall S. Becker <hidden>
Date: 2021-07-09 16:38:26
On July 9, 2021 12:21 PM, Felipe Contreras wrote:
Martin wrote:quoted
On 09/07/2021 17:08, Felipe Contreras wrote:quoted
and the fact that `git switch` expects branches is one of the things that bothers me about it.Ah, good point. I would word it differently though. "git switch forces the use of --detach if switching to a non branch" Bit of a twist. It's a nice safety for beginners. I remember when I started, I kept ending up detached. And I had no idea what to do next.Yes, and that's a good thing, but there's no need to cripple advaned users.quoted
But once you are a bit more experienced the need to add that option can be bothersome. It's not common in my workflow, but I can see that it can be an issue. So how to remedy? - Drop the option / Make it default?No. As you noted it has value for beginners.quoted
- add --allow-detach and git config switch.detach allow ?That's a good option, but another one would be to have a core.advanced mode, you turn it on if you are an advanced user.quoted
I don't really have a preference. I think its a nice protection, but even without it, the warning on entering detached HEAD state is pretty good.That warning olny appears with `git checkout`, not with `git switch --detach`.quoted
There is also a curious side effect. If you went into detached, you can go back to attached using git switch - but not back to detached by again doing git switch - Even though you had been there, and that means you had used --detached, and therefore known what you did.That's definitely a bug.
In all of this discussion, please be aware that many CI/CD systems use sparse checkout and detached heads as a matter of efficiency and certainty. Please ensure that you are not changing the semantics of existing capabilities when restricting what `git switch` will do. I am concerned about the 280,342 (as of this minute) current Jenkins users who depend on this. Thanks, Randall