fetch: reduce duplicate in ref update status lines with placeholder
commitbc437d10202c015a5733f706dc44fa6bbf4d85b9
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>
Fri, 1 Jul 2016 16:03:31 +0000 (1 18:03 +0200)
committerJunio C Hamano <gitster@pobox.com>
Wed, 6 Jul 2016 18:48:25 +0000 (6 11:48 -0700)
tree47dfb2453743e78b671584e08d9abe3af9e9d259
parent6bc91f23a6e14d540ab6950b438d40cf678143f0
fetch: reduce duplicate in ref update status lines with placeholder

In the "remote -> local" line, if either ref is a substring of the
other, the common part in the other string is replaced with "*". For
example

    abc                -> origin/abc
    refs/pull/123/head -> pull/123

become

    abc         -> origin/*
    refs/*/head -> pull/123

Activated with fetch.output=compact.

For the record, this output is not perfect. A single giant ref can
push all refs very far to the right and likely be wrapped around. We
may have a few options:

 - exclude these long lines smarter

 - break the line after "->", exclude it from column width calculation

 - implement a new format, { -> origin/}foo, which makes the problem
   go away at the cost of a bit harder to read

 - reverse all the arrows so we have "* <- looong-ref", again still
   hard to read.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/config.txt
Documentation/git-fetch.txt
builtin/fetch.c
t/t5510-fetch.sh