|
From: Daniel J S. <dan...@ie...> - 2017-10-09 21:14:50
|
On 10/09/2017 03:05 PM, Hans-Bernhard Bröker wrote:
> Am 09.10.2017 um 20:08 schrieb Daniel J Sebald:
>
>
>> The above is a good match in terms of files that changed and the
>> change log for that day. Hence, in this case we would substitute
>> Author hhhh bbbbbb <xxxxxx@xxxxxx> for bbbbbb <bbbbbb>
>
> It's also kind of a non-example, given that with an authormap file in
> place, there would be nothing left to substitute: i.e. my full name and
> address would already be in git log.
Yes, in this case the Author info is replace with the same exact info.
But I was thinking generally. I.e., most non-maintainer contributions
would also be a group of files. Ethan would have the most insight on
how this is characterized. The problem is that contributions which only
change a single file could, with higher probability, be on a day when
someone else made a modification to the same file.
BUT, I may have hit upon a more reliable and straightforward approach
from an automated script standpoint. It's based on what I pointed out
about the ChangeLog file typically being listed in the diff hunks.
Experiment with the following git command:
git log -p --unified=20 ChangeLog
That gives us the log record for the ChangeLog, printing out the diff
hunks in the ChangeLog and with enough context lines such that it
displays back to the Date/Contributor/Address line. (Use --unified=30
if one thinks there could be that length of comment.)
With such a record, the script can search for the changes in the file
(i.e., "+" as character in the first location of the line), and then
search backward for the Date/Contributor/Address info. With a few
heuristic rules, this might be rather accurate, in theory. Let's look
at some examples.
Here's one that's pretty simple, the Author info is the first modified line:
-------------------------
commit 87ca52fd56cf60be023642ad2664390affd5d896
Author: sfsfsf <sfsfsf>
Date: Mon Sep 4 05:57:37 2017 +0000
Use AC_MSG_RESULT rather than AC_MSG_WARN
diff --git a/ChangeLog b/ChangeLog
index f771b54..8cc8ab9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,20 +1,25 @@
+2017-09-03 Daniel J Sebald <xxxxxx@xxxxxx>
+
+ * configure.ac: Use AC_MSG_RESULT rather than AC_MSG_WARN to report
+ which Qt version will be used.
+
2017-09-03 Ethan Mmmm <xxxxxx@xxxxxx>
* src/time.c (xstrftime): The variant format specs for time
%tH %tM did not behave as documented in that hours wrapped at 24 and
minutes at 60 if the decimal precision modifier was missing.
2017-09-02 Ethan Mmmm <xxxxxx@xxxxxx>
* src/axis.c (parse_range eval_link_function) docs/gnuplot.doc:
Attempt to handle the case of linked axes (x+x2 or y+y2) and an in-line
range specifier in the plot statement. This fix only addresses simple
cases, such as
set link x2; plot [x=min:max] something-using-x2 axes x2y1
Recommend to use separate "set xrange ... set yrange ..." instead.
2017-09-01 Bastian Mmmm <xxxxxx@xxxxxx>
* src/win/winmain.c (ConsoleHandler): Install the console handler
also for wgnuplot and wgnuplot_pipes. Avoids segfaults when closing
the wgnuplot_pipes console window or the caca terminal console window.
-------------------------
How about the scenario of my previous post where the commits are a
series of small changes where the ChangeLog entry is gradually assembled
piecemeal?
-------------------------
commit 1455f9768f84f061aade6a9d52c29dfd92f621db
Author: mmmmmm <mmmmmm>
Date: Fri Oct 6 07:52:24 2017 +0000
Add menu items to edit gnuplot.ini and wgnuplot.ini
diff --git a/ChangeLog b/ChangeLog
index 9fe292c..45b8ac3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,32 +1,38 @@
2017-10-06 Bastian Mmmm <xxxxxx@xxxxxx>
* config/mingw/Makefile: Add helpfiles to "all" target, including
the japanese version. Remove helpfile from default target.
* config/mingw/Makefile: Default to Mingw-w64 and Direct2D v1.1.
Note that building using Mingw32 currently does not work anyway
due to missing headers libraries for newer Windows APIs.
* config/mingw/Makefile: Add a note that secure APIs are required
(pointed out by Allin Cottrell on the mailing list).
+ * config/msvc/Makefile: Build and install support files for the
+ lua/tikz terminal.
+
+ src/win/wgnuplot.mnu: Add menu items to edit gnuplot.ini and
+ wgnuplot.ini to 'Help' menu.
+
2017-10-05 Bastian Mmmm <xxxxxx@xxxxxx>
* src/win/wd2d.cpp: Enable color font support. This enables colored
emojis, which can be used e.g. as point symbols. Due to the default
font-fallback to "Segoe UI Emoji", this might lead to unexpected
results if a plot relied on non-colored character fallbacks.
2017-10-03 Ethan Mmmm <xxxxxx@xxxxxx>
* term/gd.trm: Report number of frames in completed animation sequence.
2017-10-01 Bastian Mmmm <xxxxxx@xxxxxx>
* src/win/winmain.c|h src/command.c: For wgnuplot, open or attach to a
console when executing system commands so we can its the output. That
in my option eliminates the last benefit of wgnuplot_pipes over
wgnuplot. Note that the process terminates if the new console is
closed, just as is the case with wgnuplot_pipes, but the console is
only opened when actually required.
-------------------------
Notice in the above how having enough context lines shows us the Author
information (searching backward from the first changed line in the
ChangeLog file) even though Bastian appended to the end of the previous
ChangeLog entry.
Does that approach seem fairly reliable and easy to automate?
>> I think doing a parallel reconstruction of a tagged version in both
>> CVS and git (or SVN) with the idea in mind of making them file-by-file
>> exact could lead to the most insight as far as alignment. Those tags
>> being correct is actually a little higher priority than having the
>> exact contribution attributes by user per commit.
>
> reposurgeon will do these checks automatically, and in my trial run
> there were essentially no differences found.
That's good. To me, this seemed like the most "surgical" work.
Dan
|