git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] branch: make -v useful

From
Jeff King <peff@peff.net>
Date
Jun 5, 2021, 22:35 UTC
Message-ID
<YLv8NWL7WfBRkiGe@coredump.intra.peff.net>
In-Reply-To
<87czt059sn.fsf@evledraar.gmail.com>
On Sat, Jun 05, 2021 at 10:18:14PM +0200, Ævar Arnfjörð Bjarmason wrote:
Show 9 quoted lines
> 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).

Show 8 quoted lines
> 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@gmail.com/

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
Previous: Ævar Arnfjörð BjarmasonNext: Felipe Contreras
Message 3 of 18 in “branch: make -v useful”
  1. branch: make -v usefulFelipe Contreras, Jun 5, 2021
  2. Ævar Arnfjörð BjarmasonJun 5, 2021
  3. Jeff KingJun 5, 2021
  4. Felipe ContrerasJun 7, 2021
  5. Jeff KingJun 8, 2021
  6. Felipe ContrerasJun 8, 2021
  7. Jeff KingJun 8, 2021
  8. Felipe ContrerasJun 8, 2021
  9. Kerry, RichardJun 8, 2021
  10. Felipe ContrerasJun 8, 2021
  11. Kerry, RichardJun 8, 2021
  12. Felipe ContrerasJun 10, 2021
  13. Kerry, RichardJun 25, 2021
  14. Felipe ContrerasJun 25, 2021
  15. Felipe ContrerasJun 7, 2021
  16. Ævar Arnfjörð BjarmasonJun 7, 2021
  17. Felipe ContrerasJun 7, 2021
  18. Felipe ContrerasJun 7, 2021

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.