Subject: bug#59011: 29.0.50; change to vc-git-working-revision breaks vc-git-mode-line-string

From: Jonas Bernoulli <[email-masked]>
Date: Fri, 04 Nov 2022 07:53:48 +0100

Since 307ad210040251ea0de2e7f453350c4497bda874 `vc-git-working-revision'
may return the name of a reference (aka symbolic commit) instead of the
full sha1 hash, as it used to always do.

When that name is shorter than seven characters, then that change breaks
`vc-git-mode-line-string', which expects to be able to extract the first
seven characters of the string returned by `vc-git-working-revision'.

(By the way, it is not correct to abbreviate a commit hash to the first
N characters using (substring hash 0 N).  Even in a small repository
there is a risk that such a naive abbreviation is ambiguous.  Instead of
doing that, one should use Git to perform the abbreviation; that way one
can request an abbreviation of a certain length, and Git will comply --
unless doing that would be ambiguous, in which case it returns a longer
abbreviation.)