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

From: Stephen Berman <[email-masked]>
Date: Sun, 01 Dec 2019 21:43:05 +0100

On Sun, 01 Dec 2019 19:53:51 +0200 Eli Zaretskii <[email-masked]> wrote:

>> From: Stephen Berman <[email-masked]>
>> Cc: [email-masked],  [email-masked],  [email-masked],  [email-masked]
>> Date: Sun, 01 Dec 2019 14:13:06 +0100
>>
>> >> Since one of the desiderata of this command, perhaps even the main
>> >> one, is that it should act on the revision ID at point, how about
>> >> making just `C-x v L' do that if it recognizes the word at point as
>> >> a revision ID?
>> >
>> > We could do that, yes.
>>
>> I haven't found a useful way to do this.
>
> ??? The current master AFAICS already does, but only if you invoke
> "C-x v L" with an argument of 1.  Or am I missing something?

My proposal was for `C-x v L' to do double duty, i.e., that if point is
on a revision ID, just typing `C-x v L' should show the corresponding
commit data and diff, so this would save having to type `C-u 1' or `C-1'
first, but ...

> (It does so quite naively, though: it just picks up the word at point,
> so I've seen it prompting with default being something like
> "Copyright".

... this is exactly the problem: if whatever is at point is taken to be
a revision ID, then there's no way for `C-x v L' to know when it should
(try to) show the commit data and diff as opposed to showing the commit
log.

>               Perhaps we should use number-at-point instead?)

I think number-at-point would also get too many false positives to make
it really useful.

>> There is, however, another option that is convenient (at least to me)
>> and easy to implement.  Most of the time of I want to look up the log
>> entry and/or diff of the revision ID at point the current buffer is not
>> a version-controlled buffer (typically it's a Gnus buffer), so the
>> default directory is wrong and I have to manually change to the
>> version-controlled root directory.  For me this is almost always the
>> Emacs master branch, so it would be convenient if typing `C-1 C-x v L'
>> offered this directory as a default, as a user option.  The patch below
>> does this.
>
> The command prompts for a directory, so you can type whatever you
> want.

This is precisely the extra effort I want to avoid.

>        Having a fixed default doesn't sound very wise to me (do you
> never have to work with several repositories at the same time?), but
> I'll defer to Dmitry's opinion here.

Since the default value of the proposed user option is nil, those who
don't set it will just get the current behavior, and even those who do
set it will still get the prompt, but only have to type RET instead of
directory name; and of course, if they don't want to use that default,
they can type in the directory name they want, just as now.  (At first I
made the default be immediately used without prompting; this is the most
convenient UI if you never use any other repository, but it's obviously
too restrictive.)

I did consider another idea: instead of having one default root
directory, have a list, so users could have all (or the most common)
root directories they need, and the one to use would be chosen by
read-multiple-choice.  But I thought this was probably too complicated a
UI to be really convenient for this command.

Steve Berman