2000-02-22 21:58:31 +01:00
|
|
|
:
|
|
|
|
# This utility is used to generate a compact list of changes for each
|
|
|
|
# release, bjm 2000-02-22
|
|
|
|
|
2000-06-01 03:34:02 +02:00
|
|
|
# Usage $0 file
|
2000-02-22 21:58:31 +01:00
|
|
|
|
2000-06-01 03:34:02 +02:00
|
|
|
# no branches:
|
2000-03-23 07:30:58 +01:00
|
|
|
# cvs log -d '>1999-06-14 00:00:00 GMT' . > log
|
2000-06-01 03:34:02 +02:00
|
|
|
#
|
|
|
|
# pre and post-branch logs:
|
2000-11-04 22:04:56 +01:00
|
|
|
# find . -name CVS -type d -exec touch '{}/Entries.Static' \;
|
2000-06-01 03:34:02 +02:00
|
|
|
# cvs log -d'2000-05-08 00:00:00 GMT<2000-05-29 00:00:00 GMT'
|
2000-11-02 20:26:49 +01:00
|
|
|
# cvs log -d'>2000-05-29 00:00:00 GMT' -rREL7_0_PATCHES
|
2000-11-04 22:04:56 +01:00
|
|
|
# find . -name CVS -type d -exec rm '{}/Entries.Static' \;
|
2000-06-01 03:34:02 +02:00
|
|
|
#
|
2000-02-22 21:58:31 +01:00
|
|
|
|
|
|
|
cat "$@" |
|
|
|
|
|
|
|
|
# mark each line with a datetime and line number, for sorting and merging
|
|
|
|
# we don't print anything from the -- or == line and the date:
|
|
|
|
|
|
|
|
awk '
|
2000-11-04 22:04:56 +01:00
|
|
|
$0 ~ /^Working file:/ {workingfile = "/" $3}
|
2000-02-22 21:58:31 +01:00
|
|
|
|
|
|
|
($0 ~ /^====*$/ || $0 ~ /^----*$/) && skip == "N" \
|
|
|
|
{
|
|
|
|
/* print blank line separating entries */
|
|
|
|
if (datetime != "")
|
|
|
|
{
|
|
|
|
printf ("%s| %10d|%s\n", datetime, NR, "");
|
|
|
|
printf ("%s| %10d|%s\n", datetime, NR, "---");
|
2000-11-04 22:04:56 +01:00
|
|
|
/* printf ("%s| %10d|%s\n", datetime, NR+1, "");*/
|
2000-02-22 21:58:31 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$0 ~ /^====*$/ || $0 ~ /^----*$/ \
|
|
|
|
{
|
|
|
|
datetime="";
|
|
|
|
skip="N";
|
|
|
|
}
|
|
|
|
|
|
|
|
datetime != "" && skip == "N" \
|
|
|
|
{printf ("%s| %10d| %s\n", datetime, NR, $0);}
|
|
|
|
|
|
|
|
$1 == "date:" \
|
|
|
|
{
|
|
|
|
/* get entry date */
|
|
|
|
datetime=$2"-"$3
|
|
|
|
if (workingfile != "" && skip == "N")
|
|
|
|
{
|
2000-11-04 22:04:56 +01:00
|
|
|
gsub(";", "", $5);
|
|
|
|
printf ("%s| %10d| %70s\n", datetime, NR-2, $5);
|
2000-02-22 21:58:31 +01:00
|
|
|
printf ("%s| %10d|%s\n", datetime, NR-1, workingfile);
|
|
|
|
printf ("%s| %10d|%s\n", datetime, NR, $0);
|
|
|
|
printf ("%s| %10d|%s\n", datetime, NR+1, "");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$0 ~ /^====*$/ {workingfile=""}' |
|
|
|
|
|
|
|
|
sort | cut -d'|' -f3 | cat |
|
|
|
|
|
|
|
|
# collect duplicate narratives
|
|
|
|
awk ' BEGIN { slot = 0;}
|
|
|
|
{
|
2000-11-04 22:04:56 +01:00
|
|
|
if ($0 ~ /^\//)
|
2000-02-22 21:58:31 +01:00
|
|
|
{
|
|
|
|
if (slot != oldslot)
|
|
|
|
same = 0;
|
|
|
|
else
|
|
|
|
{
|
|
|
|
same = 1;
|
|
|
|
for (i=1; i <= slot; i++)
|
|
|
|
{
|
|
|
|
if (oldnarr[i] != narr[i])
|
|
|
|
same = 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (oldslot && !same)
|
|
|
|
for (i=1; i <= oldslot; i++)
|
|
|
|
print oldnarr[i];
|
|
|
|
for (i=1; i <= slot; i++)
|
|
|
|
oldnarr[i] = narr[i];
|
|
|
|
oldslot = slot;
|
|
|
|
slot = 0;
|
|
|
|
print save_working;
|
|
|
|
save_working = $0;
|
|
|
|
}
|
|
|
|
else if ($1 != "date:")
|
|
|
|
narr[++slot] = $0;
|
|
|
|
}
|
|
|
|
END {
|
|
|
|
print save_working;
|
|
|
|
for (i=1; i <= slot; i++)
|
|
|
|
print narr[i];
|
|
|
|
}'
|