1

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?

sds
  • 5,928
  • 20
  • 39
  • 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 07 '16 at 04:40

2 Answers2

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.

0

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.

phils
  • 48,657
  • 3
  • 76
  • 115
  • I want _all_ commits expanded in the `*vc-change-log*` buffer, but one-by-one in a separate buffer. – sds Oct 10 '16 at 04:04