From 93cf749f4009c9f201f86ac911ea91d19420174e Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Sat, 13 Jan 2001 01:49:35 +0000 Subject: [PATCH] Update pgcvslog to fix problem with duplicate narratives. --- src/tools/pgcvslog | 70 ++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 47 insertions(+), 23 deletions(-) diff --git a/src/tools/pgcvslog b/src/tools/pgcvslog index f40f2c6d64..826f396bf4 100755 --- a/src/tools/pgcvslog +++ b/src/tools/pgcvslog @@ -1,14 +1,13 @@ : -# This utility is used to generate a compact list of changes for each -# release, bjm 2000-02-22 +# This utility is used to generate a compact list of changes +# for each release, bjm 2000-02-22 # Usage $0 file -# no branches: -# cvs log -d '>1999-06-14 00:00:00 GMT' . > log +# no branches: # cvs log -d '>1999-06-14 00:00:00 GMT' . > log # # pre and post-branch logs: -# find . -name CVS -type d -exec touch '{}/Entries.Static' \; +# find . -name CVS -type d -exec touch'{}/Entries.Static' \; # cvs log -d'2000-05-08 00:00:00 GMT<2000-05-29 00:00:00 GMT' # cvs log -d'>2000-05-29 00:00:00 GMT' -rREL7_0_PATCHES # find . -name CVS -type d -exec rm '{}/Entries.Static' \; @@ -16,8 +15,9 @@ 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: +# 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 ' $0 ~ /^Working file:/ {workingfile = "/" $3} @@ -49,49 +49,73 @@ awk ' if (workingfile != "" && skip == "N") { gsub(";", "", $5); - printf ("%s| %10d| %70s\n", datetime, NR-2, $5); - 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, ""); + printf ("%s| %10d|%s\n", datetime, NR-2, workingfile); + printf ("%s| %10d|%s\n", datetime, NR-1, $0); +/* printf ("%s| %10d|%s\n", datetime, NR, "");*/ + printf ("%s| %10d| %70s\n", datetime, NR+1, $5); } } - $0 ~ /^====*$/ {workingfile=""}' | + $0 ~ /^====*$/ {workingfile=""}' | sort | cut -d'|' -f3 | cat | # collect duplicate narratives -awk ' BEGIN { slot = 0;} +awk ' BEGIN { slot = 0; oldslot=0; save_working = ""; } { + /* filename */ + /* We have a filename, so we look at the previous */ + /* narrative to see if it is new narrative text.*/ + /* */ + /* If there are a different number of narrative */ + /* lines, they can not possibly be the same. */ if ($0 ~ /^\//) { if (slot != oldslot) - same = 0; + same = "N"; else { - same = 1; + same = "Y"; for (i=1; i <= slot; i++) { if (oldnarr[i] != narr[i]) - same = 0; + { + same = "N"; + break; + } } } - if (oldslot && !same) - for (i=1; i <= oldslot; i++) - print oldnarr[i]; - for (i=1; i <= slot; i++) - oldnarr[i] = narr[i]; - oldslot = slot; + /* dump out the old narrative if it is new */ + if (same == "N") + { + if (oldslot) + for (i=1; i <= oldslot; i++) + print oldnarr[i]; + /* save the current narrative */ + for (i=1; i <= slot; i++) + oldnarr[i] = narr[i]; + oldslot = slot; + } slot = 0; + + /* dump out the previous filename */ print save_working; + + /* store the current filename for later printing */ save_working = $0; - } + } else if ($1 != "date:") + { + /* accumulate narrative */ narr[++slot] = $0; + } } END { + /* dump out the last filename */ print save_working; + + /* dump out the last narrative */ for (i=1; i <= slot; i++) print narr[i]; }' -- 2.11.0