Subject: Re: bug#2604: 23.0.91; key bindings in vc-annotate incompatible w/ Emacs 22

From: Dan Nicolaescu <[email-masked]>
Date: Mon, 9 Mar 2009 17:42:26 -0700 (PDT)

Reiner Steib <[email-masked]> writes:

  > On Mon, Mar 09 2009, Dan Nicolaescu wrote:
  > 
  > > Reiner Steib <[email-masked]> writes:
  > >   > - D
  > >   > 
  > >   > Instead of showing diff of revision at line (as in Emacs 22), I get:
  > >   > 
  > >   > ,----[ *Messages* ]
  > >   > | vc-annotate-show-changeset-diff-revision-at-line:
  > >   > | The CVS backend does not support changeset diffs
  > >   > `----
  > >   > 
  > >   > Is this change intended?  
  > >
  > > It is. 
  > >
  > >   > I could understand that `D' should now work
  > >   > on change sets, but please at least mention it in NEWS and tell the
  > >   > user to try `d' instead or better just display the warning and than
  > >   > call `vc-annotate-show-diff-revision-at-line' if no change set
  > >   > operation is available.
  > >
  > > I am not sure that is better.  But if you can suggest a better wording
  > > for the error message, go for it.
  > 
  > How about this?  (Same in `log-view-diff-changeset', probably.)
  > 
  > --- vc-annotate.el	09 Jan 2009 09:52:59 +0100	1.7
  > +++ vc-annotate.el	09 Mar 2009 20:35:28 +0100	
  > @@ -506,7 +506,10 @@
  >    "Visit the diff of the revision at line from its previous revision for all files in the changeset."
  >    (interactive)
  >    (when (eq 'file (vc-call-backend vc-annotate-backend 'revision-granularity))
  > -    (error "The %s backend does not support changeset diffs" vc-annotate-backend))
  > +    (error
  > +     (substitute-command-keys "The %s backend does not support changeset diffs.  \
  > +Use \\[vc-annotate-show-diff-revision-at-line] to diff this file.")
  > +     vc-annotate-backend))
  >    (vc-annotate-show-diff-revision-at-line-internal nil))
  >  
  >  (defun vc-annotate-warp-revision (revspec)
  > 
  > >   > - L
  > >   > 
  > >   > Instead of showing log of revision at line (as in Emacs 22), nothing
  > >   > happens.
  > >   > 
  > >   > If there's no useful binding for `L', why not bind it to
  > >   > `vc-annotate-show-log-revision-at-line' or at least tell the user to
  > >   > use `l' (lowercase L) and also document it in NEWS.
  > >
  > > That would be a bad idea.  
  > 
  > Do you also consider the following as bad?  

Yup.  There are other keys too.  So the choice is not just do `L', it's
do all or none.  I think none is preferable in order to avoid
complications and future burden.

  > > Yes, it would take a tiny bit of effort for the users to get used to
  > > the lower case bindings, but given that they are easier to type it
  > > should not be too bad.
  > 
  > My first reaction was that I really thought these feature won't work
  > anymore Emacs 23 because of the (partial) rewrite of Emacs' VC system.

Users can look at the menus, and see the functions are still there.  For
experienced users that don't use menus, they can figure out in a number
of ways what the key bindings are.