>> +(defun vc-root-version-diff (_files rev1 rev2) >> + "Report diffs between revisions of the whole tree in the repository history." > > This doc string doesn't describe the arguments, and doesn't tell how > those arguments are populated in interactive invocations. I copied the doc string from `vc-version-diff' that doesn't describe its arguments. Now I fixed the doc string of `vc-version-diff' as well below. > I also wonder what would this mean for a VCS such as CVS or RCS, where > there's no meaning of a "tree revision". I'm guessing this is why the > old code deduced files to diff. See also the description of vc-diff > in the Emacs manual. `vc-root-diff' is not applicable to VCS without tree revisions, and the manual says nothing about this. Maybe the manual should say this explicitly for `vc-root-diff' as it says it for `vc-print-root-log' in (info "(emacs) VC Change Log") ‘C-x v L’ (‘vc-print-root-log’) displays a ‘*vc-change-log*’ buffer showing the history of the entire version-controlled directory tree (RCS, SCCS, CVS, and SRC do not support this feature). > Finally, we need documentation changes to go with this change of > user-visible behavior. This feature is already documented in (info "(emacs) Old Revisions") ‘C-x v D’ Compare the entire working tree to the revision you started from (‘vc-root-diff’). With a prefix argument, prompt for two revisions and compare their trees. It didn't work as documented before properly implemented by the patch.