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

[PATCH 0/4] Add --no-ahead-behind to status

From
JHJeff Hostetler <git@jeffhostetler.com>
Date
Dec 20, 2017, 14:42 UTC
Message-ID
<20171220144245.39401-1-git@jeffhostetler.com>
From: Jeff Hostetler <jeffhost@microsoft.com>

This patch series adds a "--no-ahead-behind" option to status to request that it avoid a possibly expensive ahead/behind computation for the current branch. Instead, it just prints a not up to date message in place of the detailed counts.

This idea was previously discussed in [1]. Working with the enormous Windows repository, we found that 20+ seconds was being spent in the ahead/behind computation when the current branch was 150K commits behind the upstream branch. (Yes, this happens and only took 3 weeks on the reporter's system.)

I've only modified "git status" in this patch series. A similar change could be added to "git branch -vv" and "git checkout" to avoid delays there too. I avoided doing it here to keep this patch series focused.

[1] https://public-inbox.org/git/030bf57c-7a23-3391-4fc0-93efee791543@jeffhostetler.com/T/
Jeff Hostetler (4):
  status: add --no-ahead-behind to porcelain V2
  stat_tracking_info: return +1 when branch and upstream differ
  status: update short status to use --no-ahead-behind
  status: support --no-ahead-behind in long status format.
 Documentation/config.txt     |  5 +++++
 Documentation/git-status.txt | 16 ++++++++++++++++
 builtin/checkout.c           |  2 +-
 builtin/commit.c             |  6 ++++++
 ref-filter.c                 |  4 ++--
 remote.c                     | 36 ++++++++++++++++++++++++++++--------
 remote.h                     |  4 +++-
 t/t6040-tracking-info.sh     | 42 ++++++++++++++++++++++++++++++++++++++++++
 t/t7064-wtstatus-pv2.sh      | 23 +++++++++++++++++++++++
 wt-status.c                  | 24 ++++++++++++++++++++----
 wt-status.h                  |  1 +
 11 files changed, 147 insertions(+), 16 deletions(-)
-- 
2.9.3
Next: Jeff Hostetler
Message 1 of 17 in “Add --no-ahead-behind to status”
  1. 0/4 Add --no-ahead-behind to statusJeff Hostetler, Dec 20, 2017
  2. 3/4 status: update short status to use --no-ahead-behindJeff Hostetler, Dec 20, 2017
  3. Jeff KingDec 20, 2017
  4. Jeff HostetlerDec 21, 2017
  5. Jeff KingDec 21, 2017
  6. Jeff HostetlerDec 21, 2017
  7. 2/4 stat_tracking_info: return +1 when branch and upstream differJeff Hostetler, Dec 20, 2017
  8. Jeff KingDec 20, 2017
  9. Jeff KingDec 20, 2017
  10. Jeff HostetlerDec 21, 2017
  11. 1/4 status: add --no-ahead-behind to porcelain V2Jeff Hostetler, Dec 20, 2017
  12. Jeff KingDec 20, 2017
  13. Jeff KingDec 20, 2017
  14. Jeff HostetlerDec 20, 2017
  15. 4/4 status: support --no-ahead-behind in long status format.Jeff Hostetler, Dec 20, 2017
  16. Jeff KingDec 20, 2017
  17. Jeff KingDec 20, 2017

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.