From: Jeff Hostetler <jeffhost@xxxxxxxxxxxxx> This is version 2 of my patch series to avoid expensive ahead/behind calculations in status. This version addresses Peff's comments on V1. This version renames the command line parameter to have positive sense "--ahead-behind" and avoids confusing double negatives throughout. It also changes the config setting from "status." to "core." in anticipation of use by other commands (like branch and checkout). The output for porcelain status formats does change, but ONLY if the "--no-ahead-behind" option is given on the command line; porcelain formats DO NOT inherit the config setting. The intent here is that only scripts explicitly requesting the new feature will see any format changes. 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@xxxxxxxxxxxxxxxxx/T/ Jeff Hostetler (5): core.aheadbehind: add new config setting stat_tracking_info: return +1 when branches are not equal status: add --[no-]ahead-behind to porcelain V2 output status: update short status to use --no-ahead-behind status: support --no-ahead-behind in long format Documentation/config.txt | 8 ++++++ Documentation/git-status.txt | 11 ++++++-- builtin/checkout.c | 2 +- builtin/commit.c | 19 ++++++++++++++ cache.h | 1 + config.c | 5 ++++ environment.c | 1 + ref-filter.c | 4 +-- remote.c | 38 ++++++++++++++++++++-------- remote.h | 10 ++++++-- t/t6040-tracking-info.sh | 42 +++++++++++++++++++++++++++++++ t/t7064-wtstatus-pv2.sh | 60 ++++++++++++++++++++++++++++++++++++++++++++ wt-status.c | 34 +++++++++++++++++++------ wt-status.h | 2 ++ 14 files changed, 212 insertions(+), 25 deletions(-) -- 2.9.3