Subject: Re: bug#38044: 27.0.50; There should be an easier way to look at a specific vc commit

From: Dmitry Gutov <[email-masked]>
Date: Thu, 21 Nov 2019 23:05:07 +0200

On 21.11.2019 22:19, Eli Zaretskii wrote:

>> "As I said before", when a revision is created, we fill in a number of
>> different fields, most importantly, the commit message. That's in every
>> VCS except some ancient ones. So to show a revision means to show all
>> that stuff.
> 
> Here's an alternative proposal.  It seems like almost all VCS backends
> we support provide a variant of a "log" command that shows the diffs
> together with the usual meta-data shown by "log".  Only RCS and CVS
> don't have such an option of "log", all the rest do (most of them via
> "log -p").

Somewhat better, but all backends would have to be updated anyway, for 
this to work. So the change in VC backend API is comparable to adding a 
new action.

I don't mind this too much (asking vc-git-print-log to include the diffs 
makes sense, at least), but doing it this way loses out on the 
opportunity to support all backends in one fell swoop. And we can do 
that by adding a default 'print-revision' implementation that calls two 
other backend actions (print-log and diff).

Or, again, we can do that for all backends and forego a new backend 
action altogether.

> So we could make this a subcommand of vc-log, more accurately
> vc-print-root-log, such that "C-u C-u C-x v L" will prompt for a
> revision ID, and display the information produced by such a "log -p"
> command (and fall back to displaying just the diffs for RCS and CVS).
> 
> Does this sound better?

I hardly see myself ever choosing 'C-u C-u C-x v L' instead of 'M-x 
vc-print-revision'. Simply because I'll never remember the former.

Are you really that against a new command?

Considering we have vc-print-branch-log for simply showing the same 
thing for a different branch, that feels... inconsistent.