Skip to content
Snippets Groups Projects
Commit e77df38a authored by Bruce Momjian's avatar Bruce Momjian
Browse files

Add pgcvslog '-d' capability to allow stripping of commit messages that

have back branch activity.  This will be useful for creating release
notes for major releases.
parent 3a38ea26
Branches
Tags
No related merge requests found
#!/bin/sh #!/bin/sh
# $PostgreSQL: pgsql/src/tools/pgcvslog,v 1.36 2007/10/01 13:04:55 momjian Exp $ # $PostgreSQL: pgsql/src/tools/pgcvslog,v 1.37 2007/10/05 16:42:32 momjian Exp $
# This utility is used to generate a compact list of changes # This utility is used to generate a compact list of changes
# for each release, bjm 2000-02-22 # for each release, bjm 2000-02-22
# Usage: pgcvslog [-h] # Usage: pgcvslog [-d] [-h]
# -d delete commits that include back branches
# -h is HTML output # -h is HTML output
# This program basically takes a cvs log, groups it by commit timestamp
# and line number, then compares adjacent messages. If they have the same
# commit message, they are assumed to be part of the same commit and
# appear as one commit message with multiple file names
# All branches: # All branches:
# cvs log -d'>1999-06-14 00:00:00 GMT' . > log # cvs log -d'>1999-06-14 00:00:00 GMT' . > log
# #
...@@ -32,10 +38,26 @@ ...@@ -32,10 +38,26 @@
# /cvsroot/pgsql/doc/src/FAQ/FAQ.html # /cvsroot/pgsql/doc/src/FAQ/FAQ.html
# #
HTML="N"
DEL="N"
if [ "X$1" = "X-h" ] if [ "X$1" = "X-h" ]
then HTML="Y" then HTML="Y"
shift shift
else HTML="N" fi
if [ "X$1" = "X-d" ]
then DEL="Y"
shift
fi
if [ "X$1" = "X-h" ]
then HTML="Y"
shift
fi
if [ "$HTML" = "Y" -a "$DEL" = "Y" ]
then echo "Cannot use -d and -h together" 1>&2
exit 1
fi fi
cat "$@" | cat "$@" |
...@@ -127,7 +149,7 @@ awk ' BEGIN { narr_slot = 0; oldnarr_slot=0; save_working = ""; ...@@ -127,7 +149,7 @@ awk ' BEGIN { narr_slot = 0; oldnarr_slot=0; save_working = "";
{ {
# We have a filename, so we look at the previous # We have a filename, so we look at the previous
# narrative to see if it is new narrative text. # narrative to see if it is new narrative text.
if ($0 ~ "^/" || $0 ~ ">/") if ($0 ~ "^/")
{ {
# If there are a different number of narrative # If there are a different number of narrative
# lines, they cannot possibly be the same. # lines, they cannot possibly be the same.
...@@ -243,4 +265,42 @@ then echo "<HTML>" ...@@ -243,4 +265,42 @@ then echo "<HTML>"
echo "</BODY>" echo "</BODY>"
echo "</HTML>" echo "</HTML>"
else cat else cat
fi |
# if requested, remove any commit that has the "<branch>" text
if [ "$DEL" = "Y" ]
then awk 'BEGIN \
{
slot = 0;
}
{
# new commit?
if ($0 ~ "^---$")
{
skip = "N";
for (i=1; i <= slot; i++)
if (commit[i] ~ "<branch>")
skip = "Y";
if (skip == "N")
for (i=1; i <= slot; i++)
print commit[i];
slot = 0;
}
# accumulate commit
commit[++slot] = $0;
}
END \
{
skip = "N";
for (i=1; i <= slot; i++)
if (commit[i] ~ "<branch>")
skip = "Y";
if (skip == "N")
for (i=1; i <= slot; i++)
print commit[i];
}'
else cat
fi fi
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment