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

From: Jeff Hostetler <[email-masked]>
Date: Tue, 9 Jan 2018 18:50:14 +0000

From: Jeff Hostetler <[email-masked]>

This is version 5 of my patch series to avoid expensive ahead/behind
calculations in status.  This version completely removes the config
setting and is just the --[no-]ahead-behind command line argument.

Internally (inside MSFT) we have had further discussions in this
area and identified 2 somewhat independent needs:

[1] The first is to just be able to turn off the a/b calculation when
    the invoker does not need the result at all.

[2] The second is to greatly speed up or limit the a/b calculation on
    extremely large repositories.

    In earlier versions of this patch series, there were several
    discussions of a limited mode that would look for no more than n
    commits or milliseconds.  Also discussed were some problems that
    such limiting will have and it was decided to be not worth the effort.

    We have been discussing some ways to speed up the calculation on the
    client and have tentatively scheduled this shortly.  Hopefully, this
    will eliminate the performance problems and reduce the likelyhood
    that anyone would need to set a config setting to change the default
    behavior (in either porcelain or non-porcelain) formats.

So with that in mind, this version elimates the config setting so that
we have don't to carry forward a soon-to-be-obsolete setting.

All that remains in this version is the command line argument to turn
on/off the a/b calculation.

Jeff Hostetler (4):
  stat_tracking_info: return +1 when branches not equal
  status: add --[no-]ahead-behind to status and commit for V2 format.
  status: update short status to respect --no-ahead-behind
  status: support --no-ahead-behind in long format

 Documentation/git-status.txt |  5 ++++
 builtin/checkout.c           |  2 +-
 builtin/commit.c             |  7 +++++
 ref-filter.c                 |  8 +++---
 remote.c                     | 50 +++++++++++++++++++++++------------
 remote.h                     | 12 +++++++--
 t/t6040-tracking-info.sh     | 42 ++++++++++++++++++++++++++++++
 t/t7064-wtstatus-pv2.sh      | 62 ++++++++++++++++++++++++++++++++++++++++++++
 wt-status.c                  | 41 ++++++++++++++++++++---------
 wt-status.h                  |  2 ++
 10 files changed, 196 insertions(+), 35 deletions(-)

-- 
2.9.3