Merge branch 'jh/status-no-ahead-behind'

"git status" can spend a lot of cycles to compute the relation
between the current branch and its upstream, which can now be
disabled with "--no-ahead-behind" option.

* jh/status-no-ahead-behind:
  status: support --no-ahead-behind in long format
  status: update short status to respect --no-ahead-behind
  status: add --[no-]ahead-behind to status and commit for V2 format.
  stat_tracking_info: return +1 when branches not equal
This commit is contained in:
Junio C Hamano
2018-03-08 12:36:24 -08:00
10 changed files with 196 additions and 35 deletions

View File

@ -258,10 +258,18 @@ enum match_refs_flags {
MATCH_REFS_FOLLOW_TAGS = (1 << 3)
};
/* Flags for --ahead-behind option. */
enum ahead_behind_flags {
AHEAD_BEHIND_UNSPECIFIED = -1,
AHEAD_BEHIND_QUICK = 0, /* just eq/neq reporting */
AHEAD_BEHIND_FULL = 1, /* traditional a/b reporting */
};
/* Reporting of tracking info */
int stat_tracking_info(struct branch *branch, int *num_ours, int *num_theirs,
const char **upstream_name);
int format_tracking_info(struct branch *branch, struct strbuf *sb);
const char **upstream_name, enum ahead_behind_flags abf);
int format_tracking_info(struct branch *branch, struct strbuf *sb,
enum ahead_behind_flags abf);
struct ref *get_local_heads(void);
/*