Does anyone know why git broke the long standing convention of "--" early on? Kind of a nightmare for humans to use.
Remembering app-specific one-offs is kind of the worst!
The Single UNIX Specification mentions the "--" convention in 1997 (at which point it was already in widespread use): https://pubs.opengroup.org/onlinepubs/7908799/xbd/utilconv.h...
The first release of git was in 2005, and Torvalds' Linux was clearly UNIX-inspired, so it's not like this was due to considerations for some other OS like DOS/Windows.
It sounds like they didn't need (at the time) to separate arguments from options, but they did need to separate revisions from pathspecs. So they repurposed "--" as the most familiar separator.
Probably they were trying to use familiar conventions, but when they later needed to separate arguments from options, that was a closer match for what other people were using "--" for, but it was too late.
Since it separates out the pathspec, doesn't that match the long standing convention?
When something appears to be poorly designed, then the deeper explanation is often that it’s indeed poorly designed.
One of the undeniable benefits of LLMs is that the end of guessing and remembering commands is now optional.
Now we can all run important CLI programs like Zork without a 'command doesn't exist' to command ratio of 1:4
git's data model is incredibly powerful and flexible, but its UX is famously... interesting:
https://stevelosh.com/blog/2013/04/git-koans/