Subject: bug#22968: 25.0.92; ChangeLog to *vc-log*

From: Stephen Berman <[email-masked]>
Date: Wed, 09 Mar 2016 23:58:32 +0100

0. emacs -Q
1. Edit an Emacs source file, e.g. lisp/calendar/todo-mode.el
2. Type `C-x 4 a' to make a ChangeLog entry (note the ChangeLog buffer
   is in lisp/calendar/).
3. Type `C-x v d' to get a *vc-dir* buffer, then type `v' to get a
   *vc-log* buffer.
=> The ChangeLog entry is not automatically added to the log buffer, and
typing `C-c C-a' (log-edit-insert-changelog) in the log buffer also
fails to add the ChangeLog entry.

Note that if, in step 3, you move point to the line listing the edited
file and then type `v', then the log buffer does contain the ChangeLog
entry (without, however, the containing directories lisp/calendar/,
contravening the current commit message format specification).  But if
memory serves, this used to work even with point at bob (though I
currently cannot easily test this with an earlier version to check my
memory).  In fact, it still does work if, at step 2, you add a prefix
argument, i.e. type `C-u C-x 4 a', and at the prompt enter the top level
directory emacs/ as the location of the ChangeLog buffer: then at step 3
typing `v' even at bob does automatically add the ChangeLog entry to the
log buffer (and this time the entry does include the containing
directories).

I haven't debugged why the automatic insertion of the ChangeLog entry
into the log buffer fails (as well as `C-c C-a'), but it appears to have
to do with the location of the ChangeLog buffer, and this has changed
from earlier versions, due to the elimination of files named "ChangeLog"
from the Emacs sources (there are now only files named "ChangeLog.<n>").
In consequence, find-change-log creates an empty file named "ChangeLog"
in the immediate directory of the file in which `C-x 4 a' was invoked,
e.g. in lisp/calendar/, when editing todo-mode.el; previously, `C-x 4 a'
found lisp/ChangeLog.

Strictly speaking, this isn't a bug, since find-change-log is doing what
it's designed to do.  Nevertheless, if Emacs development does not return
to maintaining versioned ChangeLog files, I think it would be desirable
for `C-x 4 a' to always create (or find) the file "ChangeLog" at top
level when editing Emacs sources, since this would add the containing
directories to the commit message.  Since other projects that could use
`C-x 4 a' may have different requirements on its effect, this should be
conditioned by a user option (or maybe just a plain variable), which can
(and probably should) be set in .dir-locals.el.

There are, of course, alternatives that don't require changing Emacs:
e.g. people could just always use `C-u C-x 4 a' or they could just keep
an unversioned file "ChangeLog" at top level.  But both of these are not
as convenient or user-friendly as just typing `C-x 4 a' and having it do
the right thing.

In GNU Emacs 25.0.92.2 (x86_64-suse-linux-gnu, GTK+ Version 3.14.15)
 of 2016-03-09 built on rosalinde
Repository revision: 711ca362e7f8ca7c4f664dc2fe60bc5fa4e4f4fe
Windowing system distributor 'The X.Org Foundation', version 11.0.11601000
System Description:	openSUSE 13.2 (Harlequin) (x86_64)

Configured using:
 'configure --with-xwidgets 'CFLAGS=-Og -g3''