When I do l (vc-print-log) in the *vc-dir* buffer, I get the *vc-change-log* buffer with a single line per commit.

Even when I can hit RET (log-view-toggle-entry-display) there to get the details, I still don't see the list of files touched by the commit.

How do I get the detailed list of all commits in the tree, including the full message and the list of files touched?

  • I know you've tagged with vc, but I'll mention 'magit' regardless, as its standard display of a commit includes the list of modified files, and I suspect would have all of the information you are wanting to see.
    – phils
    Oct 7, 2016 at 4:40

2 Answers 2


As far as I can tell, you need to modify the function git-vc-print-log. It only has some limited configurability, and that's not enough for you. You can change the variable vc-git-root-log-format to change what vc-print-log displays for a directory, but that only gives you a value that's passed to git log --pretty=tformat=, and there's no option to include the list of file names there. You need to add the option --name-only or --name-status as a separate argument to git.

You need to change the way git-vc-print-log calls vc-git-command. While it would technically be possible to do it with advice, it's a bit tricky. Given that the function is fairly small and only really does one thing, I'd just write my own modified version. Take the existing code and pass the extra option.


FWIW if you display the full diff for the commit with D, that naturally details all of the modified files as part of the diff.

  • I want all commits expanded in the *vc-change-log* buffer, but one-by-one in a separate buffer.
    – sds
    Oct 10, 2016 at 4:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.