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

Re: [PATCH 4/4] diff: turn on rename detection progress reporting

From
Jeff King <peff@peff.net>
Date
Mar 25, 2011, 09:09 UTC
Message-ID
<20110325090918.GA7085@sigill.intra.peff.net>
In-Reply-To
<4D8C53DA.1010300@viscovery.net>
On Fri, Mar 25, 2011 at 09:35:38AM +0100, Johannes Sixt wrote:
Show 9 quoted lines
> Am 3/24/2011 18:51, schrieb Jeff King:
> > Since all of the progress happens before we generate any
> > output, this looks OK, even when output goes to a pager.
> > We do the usual --progress/--no-progress options and check
> > isatty(2) to enable the feature.
> 
> Why does it look good? Because the pager is not spawned, yet? Then this is
> not so good because on Windows we don't have a facility to wait until
> there is output, and for this reason we spawn the pager immediately.

It depends on your pager. Less is careful not to produce any output until it has something to show, for exactly this reason. So it looks fine even if the pager has been started[1].

But if you have your pager set to "tig" (or you have manually piped to it), it looks awful. And something like "git show $branch | tig" is ugly even on Unix.

I'm not sure what the right solution is. We can add a config option like pager.progress, but it seems like something the user shouldn't have to care about and set manually. And that doesn't help when the user has manually invoked a pager that takes over the terminal, like "git log | tig".

-Peff

[1] Actually, there is a slight bug in my patch; if your pager has been started, our isatty(2) test fails. So you get no progress for "git show" on Windows, anyway, unless you use "--progress". "git diff", on the other hand, starts the pager afterwards, so it does work.

Previous: Johannes SixtNext: Junio C Hamano
Message 23 of 24 in “builtin/diff.c: remove duplicated call to diff_result_code()”
  1. builtin/diff.c: remove duplicated call to diff_result_code()Junio C Hamano, Mar 22, 2011
  2. 1/3 diffcore-rename: refactor "too many candidates" logicJunio C Hamano, Mar 22, 2011
  3. 2/3 diffcore-rename: record filepair for rename srcJunio C Hamano, Mar 22, 2011
  4. 3/3 diffcore-rename: fall back to -C when -C -C busts the rename limitJunio C Hamano, Mar 22, 2011
  5. Jeff KingMar 23, 2011
  6. Junio C HamanoMar 23, 2011
  7. Jeff KingMar 23, 2011
  8. Jeff KingMar 23, 2011
  9. 1/3 pager: save the original stderr when redirecting to pagerJeff King, Mar 23, 2011
  10. 2/3 progress: use pager's original_stderr if availableJeff King, Mar 23, 2011
  11. 3/3 show: turn on rename progressJeff King, Mar 23, 2011
  12. Junio C HamanoMar 23, 2011
  13. Jeff KingMar 24, 2011
  14. Junio C HamanoMar 24, 2011
  15. Jeff KingMar 24, 2011
  16. 1/4 pager: save the original stderr when redirecting to pagerJeff King, Mar 24, 2011
  17. 2/4 progress: use pager's original_stderr if availableJeff King, Mar 24, 2011
  18. 3/4 show: turn on rename detection progress reportingJeff King, Mar 24, 2011
  19. Junio C HamanoMar 24, 2011
  20. Jeff KingMar 25, 2011
  21. 4/4 diff: turn on rename detection progress reportingJeff King, Mar 24, 2011
  22. Johannes SixtMar 25, 2011
  23. Jeff KingMar 25, 2011
  24. Junio C HamanoMar 24, 2011

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.