The good old Changelog of the Linux-Kernel is quite a monster to read and I cannot imagine that you’d like to read it commit by commit for just maintaining your kernel builds in case of getting a rough idea what happened during the last release. So why not making things a little more short and sweet instead? Let’s have a look at the first commits:
commit adfb98cd3e937104d58ec60fec2e4f565a31c89d
Author: Greg Kroah-Hartman
Date: Wed Mar 15 10:23:00 2017 +0800Linux 4.10.3
commit 070dfed4d04ef6c18f07a2d147c1be74c8c84f5b
Author: K. Y. Srinivasan
Date: Wed Feb 8 18:30:56 2017 -0700drivers: hv: Turn off write permission on the hypercall page
commit 372b1e91343e657a7cc5e2e2bcecd5140ac28119 upstream.
The hypercall page only needs to be executable but currently it is setup to
be writable as well. Fix the issue.Signed-off-by: K. Y. Srinivasan
Acked-by: Kees Cook
Reported-by: Stephen Hemminger
Tested-by: Stephen Hemminger
Signed-off-by: Greg Kroah-Hartman
Just by looking at those two commits you might notice a ton of metadata sitting here which we actually don’t need. Thanks to git you might also notice the structure being the same on all messages. Getting that thing on a console we just need to look for the word “commit” and some lines around it to cut things into shape – and it happens that we have just the right tools for doing so: grep
wget --quiet https://cdn.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.10.3 -O - | grep -A 4 ^commit
This command delivers us four lines after the word commit at the beginning of a line.
commit adfb98cd3e937104d58ec60fec2e4f565a31c89d
Author: Greg Kroah-Hartman
Date: Wed Mar 15 10:23:00 2017 +0800Linux 4.10.3
—
commit 070dfed4d04ef6c18f07a2d147c1be74c8c84f5b
Author: K. Y. Srinivasan
Date: Wed Feb 8 18:30:56 2017 -0700drivers: hv: Turn off write permission on the hypercall page
—
That’s pretty short already but still not as readable as we want it to be. So let’s focus on some other stuff to be thrown away: the ‘–‘ lines at the end of the commit are looking like they could use some trim: grep -B 1 "^--"
does that for us:
Linux 4.10.3
—
—
drivers: hv: Turn off write permission on the hypercall page
—
Now that looks good. Last thing to do is getting rid of those separators: grep -B 1 "^--"
Finally our command looks like that:
wget --quiet https://... -O - | grep -A 4 ^commit | grep -B 1 "^--" | grep -v "^--"
Using that command we are able to boil down 2126 lines of text to the essentials: 75 lines of text which are easy to read.