2
# This utility is used to generate a compact list of changes
3
# for each release, bjm 2000-02-22
8
# cvs log -d '>1999-06-14 00:00:00 GMT' . > log
11
# cvs log -d'>2000-05-29 00:00:00 GMT' -b .
13
# cvs log -d'>2000-05-29 00:00:00 GMT' -rREL7_3_STABLE` .
16
# cvs log -d'2000-05-08 00:00:00 GMT<2000-05-29 00:00:00 GMT' -b .
18
# Remove TODO and FAQ logs if desired
29
# protect HTML input if in HTML mode
31
then sed -e 's/\&/\&/g' \
38
# mark each line with a datetime and line number, for sorting and merging
39
# We don't print anything from the -- or == line and the date:
41
awk ' BEGIN {html="'"$HTML"'"; lineno = 0;}
42
# store working directory
43
$0 ~ /^Working file:/ {workingfile = "/" $3}
45
($0 ~ /^====*$/ || $0 ~ /^----*$/) \
47
# print blank line to separate entries
51
printf ("%s| %10d|%s\n", datetime, lineno++, "");
52
printf ("%s| %10d|", datetime, lineno++);
54
printf ("%s\n", "---");
55
else printf ("<HR>\n");
60
# if we have a saved datetime, print filename, date line, and committer
61
datetime != "" && $1 != "branches:" {printf ("%s| %10d| %s\n", datetime, lineno++, $0);}
67
if (workingfile != "")
69
printf ("%s| %10d|", datetime, lineno++);
71
printf ("%s\n", workingfile);
72
else printf ("<SMALL><FONT COLOR=\"red\">%s</FONT></SMALL>\n", workingfile);
74
# output name of committer
75
# remove semicolon from committers name
79
printf ("%s| %10d|", datetime, lineno++);
81
printf ("%78s\n", $5);
82
else printf ("<DIV ALIGN=\"right\"><SMALL><FONT COLOR=\"teal\">%s</FONT> <FONT COLOR=\"green\">%s</FONT></SMALL></DIV>\n", $5, $2);
86
/* clear working file */
87
$0 ~ /^====*$/ {workingfile=""}' |
89
sort | cut -d'|' -f3 | cat |
91
# collect duplicate narratives
93
awk ' BEGIN { slot = 0; oldslot=0; save_working = ""; html="'"$HTML"'"}
95
# We have a filename, so we look at the previous
96
# narrative to see if it is new narrative text.
97
if ($0 ~ /^\// || $0 ~ />\//)
99
# If there are a different number of narrative
100
# lines, they can not possibly be the same.
106
for (i=1; i <= slot; i++)
108
if (oldnarr[i] != narr[i])
116
# dump out the old narrative if it is new
120
for (i=1; i <= oldslot; i++)
124
oldnarr[i] != "<HR>" &&
125
oldnarr[i] !~ "^<DIV ")
129
# save the current narrative
130
for (i=1; i <= slot; i++)
131
oldnarr[i] = narr[i];
136
# dump out the previous filename
141
# store the current filename for later printing
145
# we have a narrative line
147
# accumulate narrative
152
# If there are a different number of narrative
153
# lines, they can not possibly be the same.
159
for (i=1; i <= slot; i++)
161
if (oldnarr[i] != narr[i])
169
# dump out the old narrative if it is new
173
for (i=1; i <= oldslot; i++)
177
oldnarr[i] != "<HR>" &&
178
oldnarr[i] !~ "^<DIV ")
183
# dump out the last filename
189
# dump out the last narrative
190
for (i=1; i <= slot; i++)
204
echo "<TITLE>CVS</TITLE>"