On Thu, Oct 08, 2020 at 02:12:50PM -0400, Derrick Stolee wrote: > On 10/8/2020 12:20 PM, Robert Karszniewicz wrote: > > Changes default behaviour of `git log` and `git show` when no > > command-line options are given. Doesn't affect behaviour otherwise (same > > behaviour as with stash.showStat). > > --- > > I've wanted to have `show` and `log` show --stat by default, and I > > couldn't find any better solution for it. And I've discovered that there > > is stash.showStat, which is exactly what I want. So I wanted to bring > > stash.showStat to `show` and `log`. > > I'm wondering: why should this be a config setting instead of just > a configure alias? I answered this in the reply to Junio C Hamano. Actually, the first thing I tried, was make an alias named after the git command, like so: git config --global alias.show "show --stat" git config --global alias.log "log --stat" But that didn't work. Why, actually? We're used to it from our POSIX shells, and other places I can't think of, but it feels familiar. Perhaps this would be a good way to enable changing default behaviour of each git command without having to change anything about config handling? Would this be difficult to do? > If this is something we want to do as a config instead of alias, > I'm wondering if it is worth expanding the scope and thinking about > these other arguments (like --graph, --oneline, etc.) and how they > could be incorporated into a coherent config system. > > I worry that this initial step leads us down a road of slowly adding > one-off config settings for each option when: I worried about that, too. But I think the initial step was already in 2015, when stash.showStat and stash.showPatch were added. No flood of options happened since then? I was actually surprised about it, too, that it took so long until someone wanted to have showStat for show and log, too. > > 1. aliases exist, and > 2. it becomes unclear which arguments have configured defaults. > > Thanks, > -Stolee > Thank you!