mirror of
https://github.com/git/git.git
synced 2024-11-24 02:17:02 +08:00
transport: compute summary-width dynamically
Now all that is left to do is to actually iterate over the refs and measure the display width needed to show their abbreviation. Helped-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
11fd66de9b
commit
db98d9bafa
18
transport.c
18
transport.c
@ -429,9 +429,25 @@ static int print_one_push_status(struct ref *ref, const char *dest, int count,
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int measure_abbrev(const struct object_id *oid, int sofar)
|
||||
{
|
||||
char hex[GIT_SHA1_HEXSZ + 1];
|
||||
int w = find_unique_abbrev_r(hex, oid->hash, DEFAULT_ABBREV);
|
||||
|
||||
return (w < sofar) ? sofar : w;
|
||||
}
|
||||
|
||||
int transport_summary_width(const struct ref *refs)
|
||||
{
|
||||
return (2 * FALLBACK_DEFAULT_ABBREV + 3);
|
||||
int maxw = -1;
|
||||
|
||||
for (; refs; refs = refs->next) {
|
||||
maxw = measure_abbrev(&refs->old_oid, maxw);
|
||||
maxw = measure_abbrev(&refs->new_oid, maxw);
|
||||
}
|
||||
if (maxw < 0)
|
||||
maxw = FALLBACK_DEFAULT_ABBREV;
|
||||
return (2 * maxw + 3);
|
||||
}
|
||||
|
||||
void transport_print_push_status(const char *dest, struct ref *refs,
|
||||
|
Loading…
Reference in New Issue
Block a user