On Sat, Jun 05, 2021 at 10:18:14PM +0200, Ævar Arnfjörð Bjarmason wrote: > As for the proposal, I don't use "branch -v" all that much much, so I > don't have strong knee-jerk feelings on it, but just considering it now > I'd think that the current default is a fundamentally better > approximation of what most users would like as a default. > > I.e. I think it's fair to say that to the extent that most users have > topic branches they're part of some pull-request workflow where they're > always tracking the one upstream they always care about, usually > origin/master. I'm in the same boat. I don't use "branch -v" either, but showing the upstream name wouldn't be at all helpful to me, since it they would all just be "origin/master". (This will vary based on workflow, but the other common workflow would probably just show "topic" being based on "origin/topic"). > The -v output showing the ahead/behind relationship to that branch > without naming it is thus the best use of the limited space we have, and > with a bit more verbosity under -vv we'd show the (usually the same for > all of those) upstream name. The notion of what to show for a verbose format may depend on workflow, or even what the user's currently interested in. These days we have --format to give much more flexible output. The "-v" and "-vv" options predate --format, but these days are implemented on top of it (they literally build a format string that's passed into ref-filter.c's interpreter). So we could document them as: behave as if "--format=..." was given on the command line (unfortunately "..." here is a complex set of %(if) mechanisms, but it would mostly be for reference; nobody would need to type it). And then it is not a far leap to change that to: behave as if --format was set to the value of branch.verboseFormat, and the default of that config option is "...". And then anybody can make "branch -v" behave however they like. It would break scripts that parse "branch -v", of course, but we've been pretty explicit that this is porcelain (and the plumbing option is for-each-ref). > For what it's worth I remember some past discussion where it was > discussed to have some human-readable cut-off so instead of saying: > > ahead 2, behind 38741 > > We'd just fall back on saying "behind lots" once your number of behind > reached some limit (which could dynamically compute as a heuristic based > on repo size, just like the abbrev length).. There's some discussion in the sub-thread starting here: https://lore.kernel.org/git/7b759564-5544-8845-0594-e8342a0b4ba5@xxxxxxxxx/ I do like that direction, but it sounds like there's some complexity (maybe less these days if we can rely on having commit-graphs with generation numbers). There is an AHEAD_BEHIND_QUICK flag, but I think it can only be triggered via "git status --no-ahead-behind" (and it's kind of unsatisfying, as it only tells you whether the two tips are identical or not). -Peff