2 # This utility is used to generate a compact list of changes
3 # for each release, bjm 2000-02-22
7 # no branches: # cvs log -d '>1999-06-14 00:00:00 GMT' . > log
9 # pre and post-branch logs:
10 # find . -name CVS -type d -exec touch '{}/Entries.Static' \;
12 # cvs log -d'2000-05-08 00:00:00 GMT<2000-05-29 00:00:00 GMT'
13 # cvs log -d'>2000-05-29 00:00:00 GMT' -rREL7_1_STABLE
14 # cvs log -d'>1999-06-14 00:00:00 GMT' . > log
16 # find . -name CVS -type d -exec rm '{}/Entries.Static' \;
27 # protect HTML input if in HTML mode
29 then sed -e 's/\&/\&/g' \
36 # mark each line with a datetime and line number, for sorting and merging
37 # We don't print anything from the -- or == line and the date:
39 awk ' BEGIN {html="'"$HTML"'"; lineno = 0;}
40 # store working directory
41 $0 ~ /^Working file:/ {workingfile = "/" $3}
43 ($0 ~ /^====*$/ || $0 ~ /^----*$/) \
45 # print blank line to separate entries
49 printf ("%s| %10d|%s\n", datetime, lineno++, "");
50 printf ("%s| %10d|", datetime, lineno++);
52 printf ("%s\n", "---");
53 else printf ("<HR>\n");
58 # if we have a saved datetime, print filename, date line, and committer
59 datetime != "" {printf ("%s| %10d| %s\n", datetime, lineno++, $0);}
65 if (workingfile != "")
67 printf ("%s| %10d|", datetime, lineno++);
69 printf ("%s\n", workingfile);
70 else printf ("<SMALL><FONT COLOR=\"red\">%s</FONT></SMALL>\n", workingfile);
72 # output name of committer
73 # remove semicolon from committers name
77 printf ("%s| %10d|", datetime, lineno++);
79 printf ("%78s\n", $5);
80 else printf ("<DIV ALIGN=\"right\"><SMALL><FONT COLOR=\"teal\">%s</FONT> <FONT COLOR=\"green\">%s</FONT></SMALL></DIV>\n", $5, $2);
84 /* clear working file */
85 $0 ~ /^====*$/ {workingfile=""}' |
87 sort | cut -d'|' -f3 | cat |
89 # collect duplicate narratives
91 awk ' BEGIN { slot = 0; oldslot=0; save_working = ""; html="'"$HTML"'"}
93 # We have a filename, so we look at the previous
94 # narrative to see if it is new narrative text.
95 if ($0 ~ /^\// || $0 ~ />\//)
97 # If there are a different number of narrative
98 # lines, they can not possibly be the same.
104 for (i=1; i <= slot; i++)
106 if (oldnarr[i] != narr[i])
114 # dump out the old narrative if it is new
118 for (i=1; i <= oldslot; i++)
122 oldnarr[i] != "<HR>" &&
123 oldnarr[i] !~ "^<DIV ")
127 # save the current narrative
128 for (i=1; i <= slot; i++)
129 oldnarr[i] = narr[i];
134 # dump out the previous filename
139 # store the current filename for later printing
143 # we have a narrative line
145 # accumulate narrative
150 # dump out the last filename
156 # dump out the last narrative
157 for (i=1; i <= slot; i++)
161 oldnarr[i] != "<HR>" &&
162 oldnarr[i] !~ "^<DIV ")
171 echo "<TITLE>CVS</TITLE>"