all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Re: master cbef1e9 2/3: ; make change-history-commit
       [not found] ` <E1YgGAB-0005NP-Uc@vcs.savannah.gnu.org>
@ 2015-04-09 18:24   ` Glenn Morris
  2015-04-09 20:26     ` Paul Eggert
  2015-04-09 22:35     ` Robin Templeton
  0 siblings, 2 replies; 10+ messages in thread
From: Glenn Morris @ 2015-04-09 18:24 UTC (permalink / raw)
  To: emacs-devel; +Cc: Paul Eggert


I had assumed that the ChangeLog would not be versioned at all now, 
but it seems like it is? What's the point of that?
I assumed that only the corrections would be versioned, and the full
file would only appear in tarballs as a generated file.

I further assumed that the new-style generated log would always be
separate from the old-style ChangeLog.1 (I thought this was why the
latter was renamed to ChangeLog.1), but it seems like you added new
entries to ChangeLog.1?



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: master cbef1e9 2/3: ; make change-history-commit
  2015-04-09 18:24   ` master cbef1e9 2/3: ; make change-history-commit Glenn Morris
@ 2015-04-09 20:26     ` Paul Eggert
  2015-04-13  2:19       ` Glenn Morris
  2015-04-09 22:35     ` Robin Templeton
  1 sibling, 1 reply; 10+ messages in thread
From: Paul Eggert @ 2015-04-09 20:26 UTC (permalink / raw)
  To: Glenn Morris, emacs-devel

On 04/09/2015 11:24 AM, Glenn Morris wrote:
> I had assumed that the ChangeLog would not be versioned at all now,
> but it seems like it is?

No, your assumption is correct.  For example, there is no ChangeLog here:

http://git.savannah.gnu.org/cgit/emacs.git/tree/ChangeLog

> I assumed that only the corrections would be versioned, and the full
> file would only appear in tarballs as a generated file.

Stefan indicated long ago that this was too drastic, and that we should 
keep ChangeLog history files in the repository, e.g., lisp/ChangeLog.10 
is still in the repository and hasn't changed since January 1's 
copyright-date edits.  ChangeLog.1 is another file like 
lisp/ChangeLog.10; i.e., it's another versioned ChangeLog history file 
that you can edit by hand whenever you like.

> I further assumed that the new-style generated log would always be
> separate from the old-style ChangeLog.1

Yes, that's correct.  The ChangeLog file in the tarball (built by 'make 
ChangeLog') is disjoint from ChangeLog.1, in that ChangeLog.1 contains 
only "older" entries and Changelog contains only "newer" entries.

> (I thought this was why the
> latter was renamed to ChangeLog.1), but it seems like you added new
> entries to ChangeLog.1?

Yes, the idea is that you can move the boundary line between "older" and 
"newer" by running "make change-history".  This automated procedure 
moves the boundary to be the present, and hence entries that until now 
would have been put into ChangeLog, are put into ChangeLog.1 and become 
part of the manually-edited history, which means that ChangeLog will 
become empty.  This is how you can fix old ChangeLog entries: run "make 
change-history", then edit ChangeLog.1 by hand and commit the result.

The advantage of this approach over the old Emacs approach, is that 
ordinary commits won't alter any ChangeLog files, which will make merge 
collisions less common.  (RMS's recent problem, for example, would have 
not occurred.)  And the advantage of this approach over the approach 
taken by Coreutils, Grep, etc. (which do not store ChangeLogs in the 
repository) is that it's easier to edit history by hand.  In effect, we 
have a hybrid approach, which uses Coreutils style for "recent" 
changelog entries and traditional Emacs style for "older" changelog entries.



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: master cbef1e9 2/3: ; make change-history-commit
  2015-04-09 18:24   ` master cbef1e9 2/3: ; make change-history-commit Glenn Morris
  2015-04-09 20:26     ` Paul Eggert
@ 2015-04-09 22:35     ` Robin Templeton
  2015-04-10  5:41       ` Paul Eggert
  1 sibling, 1 reply; 10+ messages in thread
From: Robin Templeton @ 2015-04-09 22:35 UTC (permalink / raw)
  To: emacs-devel

Glenn Morris <rgm@gnu.org> writes:

> I had assumed that the ChangeLog would not be versioned at all now, 
> but it seems like it is? What's the point of that?
> I assumed that only the corrections would be versioned, and the full
> file would only appear in tarballs as a generated file.

Versioning only the corrections would have some significant advantages.
Under the new system, ChangeLogs are still the authoritative source of
correct commit messages and it's still necessary to store redundant data
in the repository. If only corrections to specific commits were stored,
it would be possible to amend the log messages as viewed with git
commands, perhaps using git object notes.

Those who prefer the traditional file-based ChangeLog for browsing could
always generate it themselves, and would also be possible to imitate the
current log editing "user interface" without actually storing complete
logs in the repository.

Separating corrections could also completely eliminate ChangeLog merge
conflicts. AFAICT, they can be avoided now only if all history editing
is done on master and never in branches.

-- 
Inteligenta persono lernas la lingvon Esperanton rapide kaj facile.
Esperanto estas moderna, kultura lingvo por la mondo. Simpla, fleksebla,
belsona, Esperanto estas la praktika solvo de la problemo de universala
interkompreno. Lernu la interlingvon Esperanton!




^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: master cbef1e9 2/3: ; make change-history-commit
  2015-04-09 22:35     ` Robin Templeton
@ 2015-04-10  5:41       ` Paul Eggert
  2015-04-11  4:33         ` Dmitry Gutov
  0 siblings, 1 reply; 10+ messages in thread
From: Paul Eggert @ 2015-04-10  5:41 UTC (permalink / raw)
  To: Robin Templeton, emacs-devel

Robin Templeton wrote:
> If only corrections to specific commits were stored,
> it would be possible to amend the log messages as viewed with git
> commands, perhaps using git object notes.

I originally proposed that -- it's the approach Coreutils takes -- but the 
Coreutils approach turns out to be too much of a pain to understand and use in 
the context of Emacs development.  Glenn did suggest object notes, but as I 
understand it Emacs VC doesn't support them.  So I went with the best 
easy-enough approach that I could think of, an approach based on Emacs's 
tradition of ChangeLog history files.  If we can think of something better, we 
should switch to it.

> Separating corrections could also completely eliminate ChangeLog merge
> conflicts.

I don't see how.  No matter how one versions corrections, merge conflicts can 
occur if concurrent developers generate different corrections for the same 
ChangeLog entry.  Perhaps Git wouldn't identify them as conflicts, but they'd 
still be conflicts.  Certainly object notes can have conflicts.

That being said, I expect the current scheme will greatly reduce merge conflicts 
in practice.  For example, I expect it would have avoided RMS's merge conflict 
that started that looooong recent thread.



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: master cbef1e9 2/3: ; make change-history-commit
  2015-04-10  5:41       ` Paul Eggert
@ 2015-04-11  4:33         ` Dmitry Gutov
  0 siblings, 0 replies; 10+ messages in thread
From: Dmitry Gutov @ 2015-04-11  4:33 UTC (permalink / raw)
  To: Paul Eggert, Robin Templeton, emacs-devel

On 04/10/2015 08:41 AM, Paul Eggert wrote:
> Glenn did suggest object
> notes, but as I understand it Emacs VC doesn't support them.

You could bring that up as a feature request, but that'd require at 
least an API proposal, especially since other VCS don't have features 
similar to notes (do they?), but anyway...

> So I went
> with the best easy-enough approach that I could think of, an approach
> based on Emacs's tradition of ChangeLog history files.  If we can think
> of something better, we should switch to it.

...I think the current approach is pretty clever, in how it required 
very few Elisp changes, and still provides the main benefits.



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: master cbef1e9 2/3: ; make change-history-commit
  2015-04-09 20:26     ` Paul Eggert
@ 2015-04-13  2:19       ` Glenn Morris
  2015-04-13  6:58         ` Paul Eggert
  0 siblings, 1 reply; 10+ messages in thread
From: Glenn Morris @ 2015-04-13  2:19 UTC (permalink / raw)
  To: Paul Eggert; +Cc: emacs-devel

Paul Eggert wrote:

>> I had assumed that the ChangeLog would not be versioned at all now,
>> but it seems like it is?
>
> No, your assumption is correct.  For example, there is no ChangeLog here:
>
> http://git.savannah.gnu.org/cgit/emacs.git/tree/ChangeLog

I meant: I had assumed that the generated ChangeLog _information_ would
not be versioned now (did you really think I was asking about a file
literally named ChangeLog, and/or am unable to tell whether a file is in
the VCS or not?). One usually does not store generated files in the VCS,
as you know.

>> I assumed that only the corrections would be versioned, and the full
>> file would only appear in tarballs as a generated file.
>
> Stefan indicated long ago that this was too drastic , and that we
> should keep ChangeLog history files in the repository, e.g.,
> lisp/ChangeLog.10 is still in the repository and hasn't changed since
> January 1's copyright-date edits. ChangeLog.1 is another file like
> lisp/ChangeLog.10; i.e., it's another versioned ChangeLog history file
> that you can edit by hand whenever you like.

You seem to be conflating the old, written-by-hand ChangeLogs and the
new, generated ones. Obviously the old ones should not be removed from
VCS, that would be crazy and is not what I meant.

>> I further assumed that the new-style generated log would always be
>> separate from the old-style ChangeLog.1
>
> Yes, that's correct.  The ChangeLog file in the tarball (built by
> make ChangeLog') is disjoint from ChangeLog.1, in that ChangeLog.1
> contains only "older" entries and Changelog contains only "newer"
> entries.

The file ChangeLog.1 in the repo contains a mixture of new, generated
entries applying to the entire Emacs tree, and (before a certain magic
date) older, hand-written entries that only apply to the top-level
(essentially) directory. I think it's pretty confusing to have both
things in the same file.

> Yes, the idea is that you can move the boundary line between "older"
> and "newer" by running "make change-history".  This automated
> procedure moves the boundary to be the present, and hence entries that
> until now would have been put into ChangeLog, are put into ChangeLog.1
> and become part of the manually-edited history, which means that
> ChangeLog will become empty.  This is how you can fix old ChangeLog
> entries: run "make change-history", then edit ChangeLog.1 by hand and
> commit the result.

That's not great, is it?
Suppose we improve/change the ChangeLog generation script, and want to
regenerate the generated ChangeLog. It will be difficult to extract the
various corrections that have been applied by hand to the generated
entries.

I had assumed that "ChangeLog" would be a top-level generated file that
would grow and grow with time, and would always be generated from
scratch whenever needed, with entries always starting from Apr 7 2015.

> effect, we have a hybrid approach, which uses Coreutils style for
> "recent" changelog entries and traditional Emacs style for "older"
> changelog entries.

Obviously, since we didn't want to throw away our old, hand-written
entries. This was a basic requirement and not some kind of selling
point.


But I'm not going to do any work on this myself, so obviously I can't
expect anyone else to.


PS On a semi-related note, you renamed man/ChangeLog to ChangeLog.01
using the justification that erc/ already uses that system. But erc uses
a non-standard scheme where .YY contains the entries for 20YY. So
personally I think erc/ChangeLog.09 is incorrect, since it does not
contain entries for (just) 2009. IMO it would have been better to
combine all the old erc logs into erc/ChangeLog.1, and not to rename
man/ChangeLog.



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: master cbef1e9 2/3: ; make change-history-commit
  2015-04-13  2:19       ` Glenn Morris
@ 2015-04-13  6:58         ` Paul Eggert
  2015-04-15 17:32           ` Glenn Morris
  0 siblings, 1 reply; 10+ messages in thread
From: Paul Eggert @ 2015-04-13  6:58 UTC (permalink / raw)
  To: Glenn Morris; +Cc: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 1931 bytes --]

Glenn Morris wrote:

> The file ChangeLog.1 in the repo contains a mixture of new, generated
> entries applying to the entire Emacs tree, and (before a certain magic
> date) older, hand-written entries that only apply to the top-level
> (essentially) directory. I think it's pretty confusing to have both
> things in the same file.

If you prefer a sharper division between pre-April-7 and post-April-7 entries, 
we can move the latter entries into a new file ChangeLog.2.  That is, 
ChangeLog.1 and ChangeLog.2 would both be hand-maintained, ChangeLog.1 would 
contain top-level entries predating April 7, and ChangeLog.2 would contain all 
entries between April 7 and the most recent 'make change-history'.  Please see 
the first attached patch.  (I haven't tested it.)

> Suppose we improve/change the ChangeLog generation script, and want to
> regenerate the generated ChangeLog. It will be difficult to extract the
> various corrections that have been applied by hand to the generated
> entries.

That shouldn't be a problem, as the newly-generated ChangeLog shouldn't include 
any hand-corrected entries.  All hand-corrected entries should be in ChangeLog.1 
(or ChangeLog.2, etc.).

> I had assumed that "ChangeLog" would be a top-level generated file that
> would grow and grow with time, and would always be generated from
> scratch whenever needed

That's basically right, except that the generated "ChangeLog" file also shrinks 
after 'make change-history' is run.

> with entries always starting from Apr 7 2015.

No, the automatically-generated 'ChangeLog' entries start from the last time 
'make change-history' was run.

> erc uses a non-standard scheme where .YY contains the entries for 20YY.

Ah, sorry, I didn't know that.  We could proceed as you suggest, though we'd 
need to add a line to Makefile.in.  Please see the second attached patch (it's 
so large that I gzipped it).  (I haven't tested this either.)

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Split-top-level-entries-into-pre-and-post-April-7.patch --]
[-- Type: text/x-patch; name="0001-Split-top-level-entries-into-pre-and-post-April-7.patch", Size: 22415 bytes --]

From 7e70e8f97740fc0f144ddecb999cb17a7dd714a4 Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@cs.ucla.edu>
Date: Sun, 12 Apr 2015 23:31:49 -0700
Subject: [PATCH 1/2] Split top-level entries into pre- and post-April 7

This more clearly distingiushes pre-April-7 ChangeLog entries (which
are for top-level files only) from post-April-7 entries (which are
about files at all levels.  Problem reported by Glenn Morris in:
http://lists.gnu.org/archive/html/emacs-devel/2015-04/msg00678.html
* ChangeLog.1: Move post-April-7 entries from here ...
* ChangeLog.2: ... to this new file.
* Makefile.in (CHANGELOG_HISTORY_INDEX_MAX): Bump to 2.
---
 ChangeLog.1 | 241 -------------------------------------------------------
 ChangeLog.2 | 261 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 Makefile.in |   2 +-
 3 files changed, 262 insertions(+), 242 deletions(-)
 create mode 100644 ChangeLog.2

diff --git a/ChangeLog.1 b/ChangeLog.1
index 6160f4b..6e2b4fc 100644
--- a/ChangeLog.1
+++ b/ChangeLog.1
@@ -1,244 +1,3 @@
-2015-04-09  Paul Eggert  <eggert@cs.ucla.edu>
-
-	Adapt 'make change-history' to coding cookie
-	* Makefile.in (change-history): Adjust to change of format of
-	ChangeLog file, which now has a coding cookie before an indented
-	copyright notice.
-
-	gitlog-to-changelog coding cookie and mv -i
-	* build-aux/gitlog-to-emacslog: Use ChangeLog.1, not Makefile.in,
-	for copyright notice prototype, so that we get a proper "coding:"
-	cookie.  Use 'mv -i' to avoid unconditionally overwriting an
-	existing ChangeLog.  Problems reported by Eli Zaretskii in:
-	http://lists.gnu.org/archive/html/emacs-devel/2015-04/msg00504.html
-
-	Merge from gnulib
-	* build-aux/gitlog-to-changelog: Update from gnulib, incorporating:
-	2015-04-09 gitlog-to-changelog: port to MS-Windows
-
-2015-04-09  Boruch Baum  <boruch_baum@gmx.com>
-
-	* lisp/bookmark.el (bookmark-bmenu-goto-bookmark): Don't inf-loop.
-	Fixes: debbugs:20212
-
-2015-04-09  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	Stop messing with the EMACS env var
-	Fixes: debbugs:20202
-	* lisp/net/tramp-sh.el (tramp-remote-process-environment):
-	* lisp/comint.el (comint-exec-1):
-	* lisp/term.el (term-exec-1): Don't set EMACS envvar.
-	* lisp/progmodes/compile.el (compilation-start): Same and bring
-	INSIDE_EMACS's format in line with other users.
-
-	css-mode.el (css-smie-rules): Fix indentation after complex selectors
-	Fixes: debbugs:20282
-	* lisp/textmodes/css-mode.el (css-smie-rules): Don't get confused by
-	inner structure of selectors.
-
-2015-04-08  Fabián Ezequiel Gallina  <fgallina@gnu.org>
-
-	python.el: Indent docstring lines to base-indent
-	Fixes: debbugs:19595
-	Thanks to immerrr <immerrr@gmail.com> for reporting and providing
-	an initial patch.
-	* lisp/progmodes/python.el
-	(python-indent-context): Add :inside-docstring context.
-	(python-indent--calculate-indentation): Handle :inside-docstring.
-	(python-indent-region): Re-indent docstrings.
-	* test/automated/python-tests.el (python-indent-region-5)
-	(python-indent-inside-string-2): Fix tests.
-
-	python.el: Increase native completion robustness
-	Fixes: debbugs:19755
-	Thanks to Carlos Pita <carlosjosepita@gmail.com> for reporting
-	this and providing useful ideas.
-	* lisp/progmodes/python.el
-	(python-shell-completion-native-output-timeout): Increase value.
-	(python-shell-completion-native-try-output-timeout): New var.
-	(python-shell-completion-native-try): Use it.
-	(python-shell-completion-native-setup): New readline setup avoids
-	polluting current context, ensures output when no-completions are
-	available and includes output end marker.
-	(python-shell-completion-native-get-completions): Trigger with one
-	tab only.  Call accept-process-output until output end is found or
-	python-shell-completion-native-output-timeout is exceeded.
-
-2015-04-08  Samer Masterson  <samer@samertm.com>
-
-	* lisp/eshell: Make backslash a no-op in front of normal chars
-	Fixes: debbugs:8531
-	* lisp/eshell/esh-arg.el (eshell-parse-argument-hook): Update comment.
-	(eshell-parse-backslash): Return escaped character after backslash
-	if it is special.  Otherwise, if the backslash is not in a quoted
-	string, ignore the backslash and return the character after; if
-	the backslash is in a quoted string, return the backslash and the
-	character after.
-	* test/automated/eshell.el (eshell-test/escape-nonspecial)
-	(eshell-test/escape-nonspecial-unicode)
-	(eshell-test/escape-nonspecial-quoted)
-	(eshell-test/escape-special-quoted): Add tests for new
-	`eshell-parse-backslash' behavior.
-
-2015-04-08  Gustav Hållberg  <gustav@gmail.com>  (tiny change)
-
-	* lisp/vc/diff-mode.el (diff-hunk-file-names): Don't require a TAB
-	after the file name.
-	Fixes: debbugs:20276
-
-2015-04-08  Paul Eggert  <eggert@cs.ucla.edu>
-
-	Minor quoting etc. fixes to Emacs manual
-	* doc/emacs/Makefile.in, doc/emacs/ack.texi, doc/emacs/building.texi:
-	* doc/emacs/calendar.texi, doc/emacs/cmdargs.texi:
-	* doc/emacs/custom.texi, doc/emacs/dired.texi, doc/emacs/emacs.texi:
-	* doc/emacs/files.texi, doc/emacs/glossary.texi, doc/emacs/gnu.texi:
-	* doc/emacs/indent.texi, doc/emacs/macos.texi:
-	* doc/emacs/maintaining.texi, doc/emacs/makefile.w32-in:
-	* doc/emacs/programs.texi, doc/emacs/rmail.texi:
-	* doc/emacs/search.texi, doc/emacs/trouble.texi:
-	* doc/emacs/vc1-xtra.texi:
-	Use American-style double quoting in ordinary text,
-	and quote 'like this' when single-quoting in ASCII text.
-	Also, fix some minor spacing issues.
-
-	Minor quoting etc. fixes to elisp intro
-	* doc/lispintro/emacs-lisp-intro.texi: Consistently use
-	American-style double quoting in ordinary text.  In ASCII text,
-	consistently quote 'like this' instead of `like this', unless
-	Emacs requires the latter.
-
-2015-04-08  Dmitry Gutov  <dgutov@yandex.ru>
-
-	* CONTRIBUTE: Mention log-edit-insert-changelog.
-
-	* CONTRIBUTE: Emphasize creating the top-level ChangeLog file manually.
-
-2015-04-08  Paul Eggert  <eggert@cs.ucla.edu>
-
-	* doc/misc/calc.texi (Summary): Avoid '@:' when usurped.
-
-2015-04-08  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	(eieio-copy-parents-into-subclass): Fix inheritance of initargs
-	Fixes: debbugs:20270
-	* lisp/emacs-lisp/eieio-core.el (eieio-copy-parents-into-subclass):
-	Fix inheritance of initargs.
-
-2015-04-08  Artur Malabarba  <bruce.connor.am@gmail.com>
-
-	* lisp/emacs-lisp/package.el (package-menu-mode): Mode-line notification
-	while dowloading information.
-
-	* lisp/emacs-lisp/package.el: More conservative `ensure-init-file'
-	(package--ensure-init-file): Check file contents before visiting.
-	(package-initialize): Call it.
-	(package-install-from-buffer, package-install): Don't call it.
-
-2015-04-08  Eli Zaretskii  <eliz@gnu.org>
-
-	* src/eval.c (init_eval_once): Bump max_lisp_eval_depth to 800
-	Fixes: bug#17517
-
-2015-04-08  Michael Albinus  <michael.albinus@gmx.de>
-
-	Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
-
-	Fix nasty scoping bug in tramp-cache.el
-	* lisp/net/tramp-cache.el (tramp-flush-file-property): Fix nasty scoping bug.
-
-2015-04-08  Tassilo Horn  <tsdh@gnu.org>
-
-	Add notice to visual commands section
-	* doc/misc/eshell.texi (Input/Output): Add notice that some tools
-	such as git call less with its -F option which omits pagination if
-	the contents is less than one page long.  This interferes with
-	eshell's visual (sub-)commands.
-
-2015-04-07  Dmitry Gutov  <dgutov@yandex.ru>
-
-	ffap: Support environment variable expansion in file names
-	Fixes: debbugs:19839
-	* lisp/ffap.el (ffap-string-at-point-mode-alist): Support
-	environment variable expansion in file names.
-
-2015-04-07  Paul Eggert  <eggert@cs.ucla.edu>
-
-	Prefer double-quote to accent-grave in man pages
-
-2015-04-07  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	Fixes: debbugs:20257
-	* lisp/files.el (set-visited-file-name): Clear auto-save if nil.
-
-2015-04-07  Ivan Shmakov  <ivan@siamics.net>
-
-	Update etc/PROBLEMS.
-	* etc/PROBLEMS: Mention visible-cursor; a few more mentions of
-	~/.Xresources and xrdb(1); refer to 'GNU Coreutils' and
-	'X Window System' or 'X' (were: 'GNU Fileutils' and 'X Windows',
-	respectively); other minor updates and tweaks.  (Bug#20011)
-
-2015-04-07  Paul Eggert  <eggert@cs.ucla.edu>
-
-	Add doc strings for some Isearch state vars
-	* lisp/misearch.el (multi-isearch-buffer-list)
-	(multi-isearch-file-list): Add doc strings.
-	Fixes: bug#20232
-
-2015-04-07  Alan Mackenzie  <acm@muc.de>
-
-	Always mark "<" and ">" in #include directives with text properties.
-	* lisp/progmodes/c-fonts.el (c-cpp-matchers): Replace a font-lock "anchored
-	matcher" with an invocation of c-make-font-lock-search-function to allow
-	fontification when there's no trailing space on an "#include <..>" line.
-
-2015-04-07  Paul Eggert  <eggert@cs.ucla.edu>
-
-	Generate a ChangeLog file from commit logs
-	* .gitignore: Add 'ChangeLog'.
-	* build-aux/gitlog-to-changelog: New file, from Gnulib.
-	* build-aux/gitlog-to-emacslog: New file.
-	* CONTRIBUTE: Document the revised workflow.
-	* Makefile.in (clean): Remove *.tmp and etc/*.tmp*
-	instead of just special cases.
-	(CHANGELOG_HISTORY_INDEX_MAX, CHANGELOG_N, gen_origin): New vars.
-	(ChangeLog, unchanged-history-files, change-history)
-	(change-history-commit): New rules.
-	* admin/admin.el (make-manuals-dist--1):
-	Don't worry about doc/ChangeLog.
-	* admin/authors.el: Add a FIXME.
-	* admin/make-tarball.txt:
-	* lisp/calendar/icalendar.el:
-	* lisp/gnus/deuglify.el:
-	* lisp/obsolete/gulp.el:
-	* lwlib/README:
-	Adjust to renamed ChangeLog history files.
-	* admin/merge-gnulib (GNULIB_MODULES): Add gitlog-to-changelog.
-	* admin/notes/repo: Call it 'master' a la Git, not 'trunk' a la Bzr.
-	Remove obsolete discussion of merging ChangeLog files.
-	New section "Maintaining ChangeLog history".
-	* build-aux/git-hooks/pre-commit:
-	Reject attempts to commit files named 'ChangeLog'.
-	* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
-	* make-dist: Make and distribute top-level ChangeLog if there's a
-	.git directory.  Distribute the new ChangeLog history files
-	instead of scattered ChangeLog files.  Distribute the new files
-	gitlog-to-changelog and gitlog-to-emacslog.
-	Fixes: bug#19113
-
-	Rename ChangeLogs for gitlog-to-changelog
-	This patch was implemented via the following shell commands:
-	find * -name ChangeLog |
-	sed 's,.*,git mv & &.1,
-	s, lisp/ChangeLog\.1$, lisp/ChangeLog.17,
-	s, lisp/erc/ChangeLog\.1$, lisp/erc/ChangeLog.09,
-	s, lisp/gnus/ChangeLog\.1$, lisp/gnus/ChangeLog.3,
-	s, lisp/mh-e/ChangeLog\.1$, lisp/mh-e/ChangeLog.2,
-	s, src/ChangeLog\.1$, src/ChangeLog.13,' |
-	sh
-	git commit -am"[this commit message]"
-
 2015-04-07  Paul Eggert  <eggert@cs.ucla.edu>
 
 	Merge from gnulib
diff --git a/ChangeLog.2 b/ChangeLog.2
new file mode 100644
index 0000000..b4ee75a
--- /dev/null
+++ b/ChangeLog.2
@@ -0,0 +1,261 @@
+2015-04-09  Paul Eggert  <eggert@cs.ucla.edu>
+
+	Adapt 'make change-history' to coding cookie
+	* Makefile.in (change-history): Adjust to change of format of
+	ChangeLog file, which now has a coding cookie before an indented
+	copyright notice.
+
+	gitlog-to-changelog coding cookie and mv -i
+	* build-aux/gitlog-to-emacslog: Use ChangeLog.1, not Makefile.in,
+	for copyright notice prototype, so that we get a proper "coding:"
+	cookie.  Use 'mv -i' to avoid unconditionally overwriting an
+	existing ChangeLog.  Problems reported by Eli Zaretskii in:
+	http://lists.gnu.org/archive/html/emacs-devel/2015-04/msg00504.html
+
+	Merge from gnulib
+	* build-aux/gitlog-to-changelog: Update from gnulib, incorporating:
+	2015-04-09 gitlog-to-changelog: port to MS-Windows
+
+2015-04-09  Boruch Baum  <boruch_baum@gmx.com>
+
+	* lisp/bookmark.el (bookmark-bmenu-goto-bookmark): Don't inf-loop.
+	Fixes: debbugs:20212
+
+2015-04-09  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	Stop messing with the EMACS env var
+	Fixes: debbugs:20202
+	* lisp/net/tramp-sh.el (tramp-remote-process-environment):
+	* lisp/comint.el (comint-exec-1):
+	* lisp/term.el (term-exec-1): Don't set EMACS envvar.
+	* lisp/progmodes/compile.el (compilation-start): Same and bring
+	INSIDE_EMACS's format in line with other users.
+
+	css-mode.el (css-smie-rules): Fix indentation after complex selectors
+	Fixes: debbugs:20282
+	* lisp/textmodes/css-mode.el (css-smie-rules): Don't get confused by
+	inner structure of selectors.
+
+2015-04-08  Fabián Ezequiel Gallina  <fgallina@gnu.org>
+
+	python.el: Indent docstring lines to base-indent
+	Fixes: debbugs:19595
+	Thanks to immerrr <immerrr@gmail.com> for reporting and providing
+	an initial patch.
+	* lisp/progmodes/python.el
+	(python-indent-context): Add :inside-docstring context.
+	(python-indent--calculate-indentation): Handle :inside-docstring.
+	(python-indent-region): Re-indent docstrings.
+	* test/automated/python-tests.el (python-indent-region-5)
+	(python-indent-inside-string-2): Fix tests.
+
+	python.el: Increase native completion robustness
+	Fixes: debbugs:19755
+	Thanks to Carlos Pita <carlosjosepita@gmail.com> for reporting
+	this and providing useful ideas.
+	* lisp/progmodes/python.el
+	(python-shell-completion-native-output-timeout): Increase value.
+	(python-shell-completion-native-try-output-timeout): New var.
+	(python-shell-completion-native-try): Use it.
+	(python-shell-completion-native-setup): New readline setup avoids
+	polluting current context, ensures output when no-completions are
+	available and includes output end marker.
+	(python-shell-completion-native-get-completions): Trigger with one
+	tab only.  Call accept-process-output until output end is found or
+	python-shell-completion-native-output-timeout is exceeded.
+
+2015-04-08  Samer Masterson  <samer@samertm.com>
+
+	* lisp/eshell: Make backslash a no-op in front of normal chars
+	Fixes: debbugs:8531
+	* lisp/eshell/esh-arg.el (eshell-parse-argument-hook): Update comment.
+	(eshell-parse-backslash): Return escaped character after backslash
+	if it is special.  Otherwise, if the backslash is not in a quoted
+	string, ignore the backslash and return the character after; if
+	the backslash is in a quoted string, return the backslash and the
+	character after.
+	* test/automated/eshell.el (eshell-test/escape-nonspecial)
+	(eshell-test/escape-nonspecial-unicode)
+	(eshell-test/escape-nonspecial-quoted)
+	(eshell-test/escape-special-quoted): Add tests for new
+	`eshell-parse-backslash' behavior.
+
+2015-04-08  Gustav Hållberg  <gustav@gmail.com>  (tiny change)
+
+	* lisp/vc/diff-mode.el (diff-hunk-file-names): Don't require a TAB
+	after the file name.
+	Fixes: debbugs:20276
+
+2015-04-08  Paul Eggert  <eggert@cs.ucla.edu>
+
+	Minor quoting etc. fixes to Emacs manual
+	* doc/emacs/Makefile.in, doc/emacs/ack.texi, doc/emacs/building.texi:
+	* doc/emacs/calendar.texi, doc/emacs/cmdargs.texi:
+	* doc/emacs/custom.texi, doc/emacs/dired.texi, doc/emacs/emacs.texi:
+	* doc/emacs/files.texi, doc/emacs/glossary.texi, doc/emacs/gnu.texi:
+	* doc/emacs/indent.texi, doc/emacs/macos.texi:
+	* doc/emacs/maintaining.texi, doc/emacs/makefile.w32-in:
+	* doc/emacs/programs.texi, doc/emacs/rmail.texi:
+	* doc/emacs/search.texi, doc/emacs/trouble.texi:
+	* doc/emacs/vc1-xtra.texi:
+	Use American-style double quoting in ordinary text,
+	and quote 'like this' when single-quoting in ASCII text.
+	Also, fix some minor spacing issues.
+
+	Minor quoting etc. fixes to elisp intro
+	* doc/lispintro/emacs-lisp-intro.texi: Consistently use
+	American-style double quoting in ordinary text.  In ASCII text,
+	consistently quote 'like this' instead of `like this', unless
+	Emacs requires the latter.
+
+2015-04-08  Dmitry Gutov  <dgutov@yandex.ru>
+
+	* CONTRIBUTE: Mention log-edit-insert-changelog.
+
+	* CONTRIBUTE: Emphasize creating the top-level ChangeLog file manually.
+
+2015-04-08  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* doc/misc/calc.texi (Summary): Avoid '@:' when usurped.
+
+2015-04-08  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	(eieio-copy-parents-into-subclass): Fix inheritance of initargs
+	Fixes: debbugs:20270
+	* lisp/emacs-lisp/eieio-core.el (eieio-copy-parents-into-subclass):
+	Fix inheritance of initargs.
+
+2015-04-08  Artur Malabarba  <bruce.connor.am@gmail.com>
+
+	* lisp/emacs-lisp/package.el (package-menu-mode): Mode-line notification
+	while dowloading information.
+
+	* lisp/emacs-lisp/package.el: More conservative `ensure-init-file'
+	(package--ensure-init-file): Check file contents before visiting.
+	(package-initialize): Call it.
+	(package-install-from-buffer, package-install): Don't call it.
+
+2015-04-08  Eli Zaretskii  <eliz@gnu.org>
+
+	* src/eval.c (init_eval_once): Bump max_lisp_eval_depth to 800
+	Fixes: bug#17517
+
+2015-04-08  Michael Albinus  <michael.albinus@gmx.de>
+
+	Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
+
+	Fix nasty scoping bug in tramp-cache.el
+	* lisp/net/tramp-cache.el (tramp-flush-file-property): Fix nasty scoping bug.
+
+2015-04-08  Tassilo Horn  <tsdh@gnu.org>
+
+	Add notice to visual commands section
+	* doc/misc/eshell.texi (Input/Output): Add notice that some tools
+	such as git call less with its -F option which omits pagination if
+	the contents is less than one page long.  This interferes with
+	eshell's visual (sub-)commands.
+
+2015-04-07  Dmitry Gutov  <dgutov@yandex.ru>
+
+	ffap: Support environment variable expansion in file names
+	Fixes: debbugs:19839
+	* lisp/ffap.el (ffap-string-at-point-mode-alist): Support
+	environment variable expansion in file names.
+
+2015-04-07  Paul Eggert  <eggert@cs.ucla.edu>
+
+	Prefer double-quote to accent-grave in man pages
+
+2015-04-07  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	Fixes: debbugs:20257
+	* lisp/files.el (set-visited-file-name): Clear auto-save if nil.
+
+2015-04-07  Ivan Shmakov  <ivan@siamics.net>
+
+	Update etc/PROBLEMS.
+	* etc/PROBLEMS: Mention visible-cursor; a few more mentions of
+	~/.Xresources and xrdb(1); refer to 'GNU Coreutils' and
+	'X Window System' or 'X' (were: 'GNU Fileutils' and 'X Windows',
+	respectively); other minor updates and tweaks.  (Bug#20011)
+
+2015-04-07  Paul Eggert  <eggert@cs.ucla.edu>
+
+	Add doc strings for some Isearch state vars
+	* lisp/misearch.el (multi-isearch-buffer-list)
+	(multi-isearch-file-list): Add doc strings.
+	Fixes: bug#20232
+
+2015-04-07  Alan Mackenzie  <acm@muc.de>
+
+	Always mark "<" and ">" in #include directives with text properties.
+	* lisp/progmodes/c-fonts.el (c-cpp-matchers): Replace a font-lock "anchored
+	matcher" with an invocation of c-make-font-lock-search-function to allow
+	fontification when there's no trailing space on an "#include <..>" line.
+
+2015-04-07  Paul Eggert  <eggert@cs.ucla.edu>
+
+	Generate a ChangeLog file from commit logs
+	* .gitignore: Add 'ChangeLog'.
+	* build-aux/gitlog-to-changelog: New file, from Gnulib.
+	* build-aux/gitlog-to-emacslog: New file.
+	* CONTRIBUTE: Document the revised workflow.
+	* Makefile.in (clean): Remove *.tmp and etc/*.tmp*
+	instead of just special cases.
+	(CHANGELOG_HISTORY_INDEX_MAX, CHANGELOG_N, gen_origin): New vars.
+	(ChangeLog, unchanged-history-files, change-history)
+	(change-history-commit): New rules.
+	* admin/admin.el (make-manuals-dist--1):
+	Don't worry about doc/ChangeLog.
+	* admin/authors.el: Add a FIXME.
+	* admin/make-tarball.txt:
+	* lisp/calendar/icalendar.el:
+	* lisp/gnus/deuglify.el:
+	* lisp/obsolete/gulp.el:
+	* lwlib/README:
+	Adjust to renamed ChangeLog history files.
+	* admin/merge-gnulib (GNULIB_MODULES): Add gitlog-to-changelog.
+	* admin/notes/repo: Call it 'master' a la Git, not 'trunk' a la Bzr.
+	Remove obsolete discussion of merging ChangeLog files.
+	New section "Maintaining ChangeLog history".
+	* build-aux/git-hooks/pre-commit:
+	Reject attempts to commit files named 'ChangeLog'.
+	* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
+	* make-dist: Make and distribute top-level ChangeLog if there's a
+	.git directory.  Distribute the new ChangeLog history files
+	instead of scattered ChangeLog files.  Distribute the new files
+	gitlog-to-changelog and gitlog-to-emacslog.
+	Fixes: bug#19113
+
+	Rename ChangeLogs for gitlog-to-changelog
+	This patch was implemented via the following shell commands:
+	find * -name ChangeLog |
+	sed 's,.*,git mv & &.1,
+	s, lisp/ChangeLog\.1$, lisp/ChangeLog.17,
+	s, lisp/erc/ChangeLog\.1$, lisp/erc/ChangeLog.09,
+	s, lisp/gnus/ChangeLog\.1$, lisp/gnus/ChangeLog.3,
+	s, lisp/mh-e/ChangeLog\.1$, lisp/mh-e/ChangeLog.2,
+	s, src/ChangeLog\.1$, src/ChangeLog.13,' |
+	sh
+	git commit -am"[this commit message]"
+
+;; Local Variables:
+;; coding: utf-8
+;; End:
+
+  Copyright 2015 Free Software Foundation, Inc.
+
+  This file is part of GNU Emacs.
+
+  GNU Emacs is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+
+  GNU Emacs is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
diff --git a/Makefile.in b/Makefile.in
index 8a45f2c..077cb50 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1101,7 +1101,7 @@ ChangeLog:
 # The ChangeLog history files are called ChangeLog.1, ChangeLog.2, ...,
 # ChangeLog.$(CHANGELOG_HISTORY_INDEX_MAX).  $(CHANGELOG_N) stands for
 # the newest (highest-numbered) ChangeLog history file.
-CHANGELOG_HISTORY_INDEX_MAX = 1
+CHANGELOG_HISTORY_INDEX_MAX = 2
 CHANGELOG_N = ChangeLog.$(CHANGELOG_HISTORY_INDEX_MAX)
 
 # Check that we are in a good state for changing history.
-- 
2.1.0


[-- Attachment #3: 0002-Standardize-names-of-ChangeLog-history-files.patch.gz --]
[-- Type: application/gzip, Size: 258799 bytes --]

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: master cbef1e9 2/3: ; make change-history-commit
  2015-04-13  6:58         ` Paul Eggert
@ 2015-04-15 17:32           ` Glenn Morris
  2015-04-15 17:39             ` Glenn Morris
  0 siblings, 1 reply; 10+ messages in thread
From: Glenn Morris @ 2015-04-15 17:32 UTC (permalink / raw)
  To: Paul Eggert; +Cc: emacs-devel

Paul Eggert wrote:

> ChangeLog.1 would contain top-level entries predating April 7, and
> ChangeLog.2 would contain all entries between April 7 and the most
> recent 'make change-history'.

That sounds better to me. Eg I think it would make life easier for
authors.el.

>> Suppose we improve/change the ChangeLog generation script, and want to
>> regenerate the generated ChangeLog. It will be difficult to extract the
>> various corrections that have been applied by hand to the generated
>> entries.
>
> That shouldn't be a problem, as the newly-generated ChangeLog
> shouldn't include any hand-corrected entries.

I seem to be persistently mis-communicating. Let me try again:
In the repo right now, ChangeLog.1 contains entries generated from
commit logs. It also contains some hand-written corrections to a few
of those entries. Suppose we tweak the generation script, and want to
regenerate _all_ entries from Apr 7. E.g. if bug#20325 gets fixed.
It will be difficult to do that without losing the hand-written corrections.

> No, the automatically-generated 'ChangeLog' entries start from the
> last time 'make change-history' was run.

Right. As I was saying, this is not how I expected it to work.

I expected any corrections would be applied to the commit logs, not the
generated C'log. Doing it the former way means the full C'log from Apr 7
can be regenerated whenever necessary, and also means there is no need
to store entries that do not need to be corrected in the repo.

I suggested using git notes for that, but it could just as well be a
flat text file in admin/ that contains a list of (hash + corrected log
for that hash). The generate script could check for an entry in that
file. If there isn't one, use the commit log as-is.

>> erc uses a non-standard scheme where .YY contains the entries for 20YY.
>
> Ah, sorry, I didn't know that.  We could proceed as you suggest,
> though we'd need to add a line to Makefile.in.  Please see the second
> attached patch (it's so large that I gzipped it).  (I haven't tested
> this either.)

I haven't tested either, but sounds like the right idea to me.



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: master cbef1e9 2/3: ; make change-history-commit
  2015-04-15 17:32           ` Glenn Morris
@ 2015-04-15 17:39             ` Glenn Morris
  2015-04-15 21:30               ` Paul Eggert
  0 siblings, 1 reply; 10+ messages in thread
From: Glenn Morris @ 2015-04-15 17:39 UTC (permalink / raw)
  To: Paul Eggert, Emacs developers


Glenn Morris wrote (on Wed, 15 Apr 2015 at 13:32 -0400):

> I expected any corrections would be applied to the commit logs, not the
> generated C'log. Doing it the former way means the full C'log from Apr 7
> can be regenerated whenever necessary, and also means there is no need
> to store entries that do not need to be corrected in the repo.

But maybe it is actually easier for people to correct the generated C'log,
rather than figure out what commit log they should have written.

(Frankly I suspect almost no-one is going to bother with either system
of corrections. It'll just be another chore foisted off on the person
making the next release tarfile.)



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: master cbef1e9 2/3: ; make change-history-commit
  2015-04-15 17:39             ` Glenn Morris
@ 2015-04-15 21:30               ` Paul Eggert
  0 siblings, 0 replies; 10+ messages in thread
From: Paul Eggert @ 2015-04-15 21:30 UTC (permalink / raw)
  To: Glenn Morris, Emacs developers

On 04/15/2015 10:39 AM, Glenn Morris wrote:
> maybe it is actually easier for people to correct the generated C'log,
> rather than figure out what commit log they should have written.
>

Yes, I think it's more natural.

I've done it the other way, with Coreutils, and the problem is that 
hacking on a ChangeLog edit script is one more thing for developers to 
learn, and that's a barrier to fixing ChangeLog history.  It's OK for 
Coreutils, whose few developers have been coached to write 
consistent-format commit messages and where people don't much care about 
a ChangeLog typo unless it's something important (like proper 
attribution).  It wouldn't work as well for for Emacs, which has dozens 
of developers not all of who are on the same page with regards to commit 
message format, and which has a greater emphasis on typo-free ChangeLog 
history.

Anyway, I installed the two changes we discussed, so we should be better 
off than we were before.



^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2015-04-15 21:30 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20150409172246.20602.44549@vcs.savannah.gnu.org>
     [not found] ` <E1YgGAB-0005NP-Uc@vcs.savannah.gnu.org>
2015-04-09 18:24   ` master cbef1e9 2/3: ; make change-history-commit Glenn Morris
2015-04-09 20:26     ` Paul Eggert
2015-04-13  2:19       ` Glenn Morris
2015-04-13  6:58         ` Paul Eggert
2015-04-15 17:32           ` Glenn Morris
2015-04-15 17:39             ` Glenn Morris
2015-04-15 21:30               ` Paul Eggert
2015-04-09 22:35     ` Robin Templeton
2015-04-10  5:41       ` Paul Eggert
2015-04-11  4:33         ` Dmitry Gutov

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.