Update pgcvslog to fix problem with duplicate narratives.

This commit is contained in:
Bruce Momjian 2001-01-13 01:49:35 +00:00
parent 3f8ea17810
commit 93cf749f40
1 changed files with 47 additions and 23 deletions

View File

@ -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];
}'