Continuing the digression a bit: On Sat, Mar 2, 2024 at 11:58 AM Kristoffer Haugsbakk <code@xxxxxxxxxxxxxxx> wrote: > This looks similar to the discussion from a [stash] topic: > > • Proposed introducing config variables which change how `git stash > push` and `git stash save` behave (what they save) > • Concern about how that could break third-party scripts [snippage] > 🔗 [stash]: https://lore.kernel.org/git/xmqq34tnyhhf.fsf@gitster.g/ As I see it, the general issue here is the tension between Git commands that are used for scripting -- which ideally should always be plumbing commands -- and those used by end-users. This tension is relieved somewhat when there *are* separate plumbing commands, such as `git diff-index` and `git diff-tree` and so on, or `git rev-list` vs `git log`. Unfortunately there are some commands, including `git log` itself, that have options that are missing from the roughly-equivalent plumbing command, and there are commands (such as `git stash` and `git status`) that either do not have, or at one time lacked, plumbing command equivalents or options. The `git status` command shows one way out of this problem: we can *add* `--porcelain` options. Perhaps every command (or every non-plumbing-only one) should have `--porcelain[=<version>]`. This doesn't fix the situation today, but provides an obvious future-proofing path. Chris