Remembering app-specific one-offs is kind of the worst!
I wonder: would it not be better to tell users with those edge cases to fix their problems some other way? To take an example from the article: why does someone have a filename beginning with a dash? Maybe don't do that.
The saddest thing is even ASCII has characters to help with this but since keyboards can't type them nobody used them.
git cmd --options -- rev -- pathspec
would be the fully specified revspec and pathspec git cmd --option -- rev --
would be just the revspec, excluding accidental options, without a pathspec git cmd --option revspec -- pathspec
and the single "--" would work as it currently does.Which seems unfair because what if they have subconsciously regurgitated Claude-speak?
[1] "That’s a real cost,"
Argh, that's when I wished for object oriented shells. Powershell sure isn't perfect but objects encoding their own meaning really helps differentiate those cases (but it may not always help the user if types aren't clear to the reader)
By the way, something munched the article title. An endash is incorrect command-line usage. It’s supposed to be a double hyphen.
Should check what it does with branch names starting with a dash.
Of course that wouldn't be a security vulnerability, but a user error. It asks user approvals to execute those things and has disclaimers to check results. Which of course every user does all the time... /s