Eu inventei isso:
(defadvice vc-git-mode-line-string (after plus-minus (file) compile activate)
(setq ad-return-value
(concat ad-return-value
(let ((plus-minus (vc-git--run-command-string
file "diff" "--numstat" "--")))
(and plus-minus
(string-match "^\([0-9]+\)\t\([0-9]+\)\t" plus-minus)
(format " +%s-%s" (match-string 1 plus-minus) (match-string 2 plus-minus)))))))
que coloca Git:master +9-2
na minha linha de modo.
Não tem certeza do que você quer dizer com autor - seria esse o autor do último commit? Se assim for, isso parece funcionar:
(defadvice vc-git-mode-line-string (after author (file) compile activate)
(setq ad-return-value
(concat ad-return-value
(let ((author
(vc-git--run-command-string file "log" "-n1" "--pretty=format:%an" "--")))
(when author
(concat " " author))))))