head	1.40;
access;
symbols
	REL9_0_0:1.40
	REL9_1_ALPHA1:1.40
	REL9_0_RC1:1.40
	REL9_0_BETA4:1.40
	REL9_0_STABLE:1.40.0.10
	REL9_0_BETA3:1.40
	REL9_0_BETA2:1.40
	REL7_4_29:1.20
	REL8_0_25:1.20
	REL8_1_21:1.27
	REL8_2_17:1.32
	REL8_3_11:1.39
	REL8_4_4:1.39
	REL9_0_BETA1:1.40
	REL9_0_ALPHA5_BRANCH:1.40.0.8
	REL9_0_ALPHA5:1.40
	REL7_4_28:1.20
	REL8_0_24:1.20
	REL8_1_20:1.27
	REL8_2_16:1.32
	REL8_3_10:1.39
	REL8_4_3:1.39
	REL9_0_ALPHA4:1.40
	REL9_0_ALPHA4_BRANCH:1.40.0.6
	REL8_5_ALPHA3:1.40
	REL8_5_ALPHA3_BRANCH:1.40.0.4
	REL7_4_27:1.20
	REL8_0_23:1.20
	REL8_1_19:1.27
	REL8_2_15:1.32
	REL8_3_9:1.39
	REL8_4_2:1.39
	REL8_5_ALPHA2:1.40
	REL8_5_ALPHA2_BRANCH:1.40.0.2
	REL7_4_26:1.20
	REL8_0_22:1.20
	REL8_1_18:1.27
	REL8_2_14:1.32
	REL8_3_8:1.39
	REL8_4_1:1.39
	REL8_5_ALPHA1:1.39
	REL8_5_ALPHA1_BRANCH:1.39.0.6
	REL8_4_STABLE:1.39.0.4
	REL8_4_0:1.39
	REL8_4_RC2:1.39
	REL8_4_RC1:1.39
	REL8_4_BETA2:1.39
	REL8_4_BETA1:1.39
	REL7_4_25:1.20
	REL8_0_21:1.20
	REL8_1_17:1.27
	REL8_2_13:1.32
	REL8_3_7:1.39
	REL7_4_24:1.20
	REL8_0_20:1.20
	REL8_1_16:1.27
	REL8_2_12:1.32
	REL8_3_6:1.39
	REL7_4_23:1.20
	REL8_0_19:1.20
	REL8_1_15:1.27
	REL8_2_11:1.32
	REL8_3_5:1.39
	REL7_4_22:1.20
	REL8_0_18:1.20
	REL8_1_14:1.27
	REL8_2_10:1.32
	REL8_3_4:1.39
	REL7_4_21:1.20
	REL8_0_17:1.20
	REL8_1_13:1.27
	REL8_2_9:1.32
	REL8_3_3:1.39
	REL7_4_20:1.20
	REL8_0_16:1.20
	REL8_1_12:1.27
	REL8_2_8:1.32
	REL8_3_2:1.39
	REL8_2_7:1.32
	REL8_3_1:1.39
	REL8_3_STABLE:1.39.0.2
	REL8_3_0:1.39
	REL8_3_RC2:1.39
	REL7_3_21:1.14
	REL7_4_19:1.20
	REL8_0_15:1.20
	REL8_1_11:1.27
	REL8_2_6:1.32
	REL8_3_RC1:1.39
	REL8_3_BETA4:1.39
	REL8_3_BETA3:1.39
	REL8_3_BETA2:1.39
	REL8_3_BETA1:1.36
	REL7_3_20:1.14
	REL7_4_18:1.20
	REL8_0_14:1.20
	REL8_1_10:1.27
	REL8_2_5:1.32
	REL7_3_19:1.14
	REL7_4_17:1.20
	REL8_0_13:1.20
	REL8_1_9:1.27
	REL8_2_4:1.32
	REL8_0_12:1.20
	REL8_1_8:1.27
	REL8_2_3:1.32
	REL7_3_18:1.14
	REL7_4_16:1.20
	REL8_0_11:1.20
	REL8_1_7:1.27
	REL8_2_2:1.32
	REL8_0_10:1.20
	REL8_1_6:1.27
	REL8_2_1:1.32
	REL7_4_15:1.20
	REL7_3_17:1.14
	REL8_2_STABLE:1.32.0.2
	REL8_2_0:1.32
	REL8_2_RC1:1.32
	REL8_2_BETA3:1.32
	REL8_2_BETA2:1.32
	REL8_1_5:1.27
	REL8_0_9:1.20
	REL7_4_14:1.20
	REL7_3_16:1.14
	REL8_2_BETA1:1.31
	REL7_3_15:1.14
	REL7_4_13:1.20
	REL8_0_8:1.20
	REL8_1_4:1.27
	REL7_3_14:1.14
	REL7_4_12:1.20
	REL8_0_7:1.20
	REL8_1_3:1.27
	REL7_3_13:1.14
	REL7_4_11:1.20
	REL8_0_6:1.20
	REL8_1_2:1.27
	REL7_3_12:1.14
	REL7_4_10:1.20
	REL8_0_5:1.20
	REL8_1_1:1.27
	REL8_1_STABLE:1.27.0.2
	REL8_1_0:1.27
	REL8_1_0RC1:1.27
	REL8_1_0BETA4:1.27
	REL8_1_0BETA3:1.27
	REL7_3_11:1.14
	REL7_4_9:1.20
	REL8_0_4:1.20
	REL8_1_0BETA2:1.26
	REL8_1_0BETA1:1.26
	REL7_2_8:1.11
	REL7_3_10:1.14
	REL7_4_8:1.20
	REL8_0_3:1.20
	REL8_0_2:1.20
	REL7_2_7:1.11
	REL7_3_9:1.14
	REL7_4_7:1.20
	REL8_0_1:1.20
	REL8_0_STABLE:1.20.0.8
	REL8_0_0:1.20.0.6
	REL8_0_0RC5:1.20
	REL8_0_0RC4:1.20
	REL8_0_0RC3:1.20
	REL8_0_0RC2:1.20
	REL8_0_0RC1:1.20
	REL8_0_0BETA5:1.20
	REL8_0_0BETA4:1.20
	REL7_4_6:1.20
	REL7_3_8:1.14
	REL7_2_6:1.11
	REL8_0_0BETA3:1.20
	REL8_0_0BETA2:1.20
	REL7_2_5:1.11
	REL7_4_5:1.20
	REL7_3_7:1.14
	REL7_4_4:1.20
	REL8_0_0BETA1:1.20
	REL7_4_3:1.20
	REL7_4_2:1.20
	REL7_3_6:1.14
	REL7_4_1:1.20
	REL7_3_5:1.14
	REL7_4:1.20
	REL7_4_RC2:1.20
	REL7_4_STABLE:1.20.0.4
	REL7_4_RC1:1.20
	REL7_4_BETA5:1.20
	REL7_4_BETA4:1.20
	REL7_4_BETA3:1.20
	REL7_4_BETA2:1.20
	WIN32_DEV:1.20.0.2
	REL7_4_BETA1:1.20
	REL7_3_4:1.14
	REL7_3_2:1.14
	REL7_2_4:1.11
	REL7_3_STABLE:1.14.0.2
	REL7_2_3:1.11
	REL7_2_STABLE:1.11.0.2
	REL7_2:1.11
	REL7_2_RC2:1.11
	REL7_2_RC1:1.11
	REL7_2_BETA5:1.11
	REL7_2_BETA4:1.11
	REL7_2_BETA3:1.11
	REL7_2_BETA2:1.11
	REL7_2_BETA1:1.11
	REL7_1_2:1.9
	REL7_1_STABLE:1.9.0.2
	REL7_1_BETA:1.6
	REL7_1_BETA3:1.6
	REL7_1_BETA2:1.6
	REL7_1:1.9
	REL7_0_PATCHES:1.2.0.2
	REL7_0:1.2;
locks; strict;
comment	@# @;


1.40
date	2009.08.29.17.09.20;	author momjian;	state Exp;
branches;
next	1.39;

1.39
date	2007.10.09.02.56.44;	author momjian;	state Exp;
branches;
next	1.38;

1.38
date	2007.10.05.18.40.52;	author momjian;	state Exp;
branches;
next	1.37;

1.37
date	2007.10.05.16.42.32;	author momjian;	state Exp;
branches;
next	1.36;

1.36
date	2007.10.01.13.04.55;	author momjian;	state Exp;
branches;
next	1.35;

1.35
date	2007.10.01.03.01.38;	author momjian;	state Exp;
branches;
next	1.34;

1.34
date	2007.10.01.02.59.03;	author momjian;	state Exp;
branches;
next	1.33;

1.33
date	2007.01.31.22.17.03;	author momjian;	state Exp;
branches;
next	1.32;

1.32
date	2006.10.08.01.39.59;	author momjian;	state Exp;
branches;
next	1.31;

1.31
date	2006.09.07.18.13.56;	author momjian;	state Exp;
branches;
next	1.30;

1.30
date	2006.05.31.10.24.29;	author momjian;	state Exp;
branches;
next	1.29;

1.29
date	2006.03.15.03.24.17;	author momjian;	state Exp;
branches;
next	1.28;

1.28
date	2006.03.11.04.38.41;	author momjian;	state Exp;
branches;
next	1.27;

1.27
date	2005.09.27.17.16.08;	author momjian;	state Exp;
branches;
next	1.26;

1.26
date	2005.08.17.01.45.20;	author momjian;	state Exp;
branches;
next	1.25;

1.25
date	2005.08.16.19.29.38;	author momjian;	state Exp;
branches;
next	1.24;

1.24
date	2005.08.16.19.23.31;	author momjian;	state Exp;
branches;
next	1.23;

1.23
date	2005.08.16.17.46.57;	author momjian;	state Exp;
branches;
next	1.22;

1.22
date	2005.04.01.16.34.31;	author momjian;	state Exp;
branches;
next	1.21;

1.21
date	2005.04.01.13.25.10;	author momjian;	state Exp;
branches;
next	1.20;

1.20
date	2003.08.01.13.48.58;	author momjian;	state Exp;
branches;
next	1.19;

1.19
date	2003.08.01.13.48.25;	author momjian;	state Exp;
branches;
next	1.18;

1.18
date	2003.08.01.05.52.44;	author momjian;	state Exp;
branches;
next	1.17;

1.17
date	2003.07.25.02.11.17;	author momjian;	state Exp;
branches;
next	1.16;

1.16
date	2003.07.25.01.40.02;	author momjian;	state Exp;
branches;
next	1.15;

1.15
date	2003.01.13.01.57.47;	author momjian;	state Exp;
branches;
next	1.14;

1.14
date	2002.09.02.17.34.57;	author momjian;	state Exp;
branches;
next	1.13;

1.13
date	2002.03.18.23.03.13;	author momjian;	state Exp;
branches;
next	1.12;

1.12
date	2002.02.18.05.33.13;	author momjian;	state Exp;
branches;
next	1.11;

1.11
date	2001.05.17.13.28.30;	author momjian;	state Exp;
branches;
next	1.10;

1.10
date	2001.05.17.13.20.35;	author momjian;	state Exp;
branches;
next	1.9;

1.9
date	2001.01.18.19.12.36;	author momjian;	state Exp;
branches;
next	1.8;

1.8
date	2001.01.13.04.58.53;	author momjian;	state Exp;
branches;
next	1.7;

1.7
date	2001.01.13.01.49.35;	author momjian;	state Exp;
branches;
next	1.6;

1.6
date	2000.11.04.21.04.56;	author momjian;	state Exp;
branches;
next	1.5;

1.5
date	2000.11.02.19.26.49;	author momjian;	state Exp;
branches;
next	1.4;

1.4
date	2000.10.29.18.13.47;	author momjian;	state Exp;
branches;
next	1.3;

1.3
date	2000.06.01.01.34.02;	author momjian;	state Exp;
branches;
next	1.2;

1.2
date	2000.03.23.06.30.58;	author momjian;	state Exp;
branches;
next	1.1;

1.1
date	2000.02.22.20.58.31;	author momjian;	state Exp;
branches;
next	;


desc
@@


1.40
log
@Remove handling of CVS entries for TODO/FAQ, because they are removed
now.
@
text
@#!/bin/sh

# $PostgreSQL: pgsql/src/tools/pgcvslog,v 1.39 2007/10/09 02:56:44 momjian Exp $

# This utility is used to generate a compact list of changes
# for each release, bjm 2000-02-22

# Usage:  pgcvslog [-d] [-h]
# -d delete commits that include back branches
# -h is HTML output
# "-d" is useful for generating release notes for major releases

# 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:	
# cvs log -d'>1999-06-14 00:00:00 GMT' . > log
#
# HEAD:
# cvs log -d'>2000-05-29 00:00:00 GMT' -b .
#
# Branch:
# cvs log -d'>2000-05-29 00:00:00 GMT' -rREL8_0_STABLE .
#
# Date range
# cvs log -d'2005-05-08<2005-05-29' -rREL8_0_STABLE .
#
# To find branch time, look for "branches:" tag in CVS commit logs
# e.g. "branches:  1.398.4;" matches "REL8_0_STABLE: 1.398.0.4".

HTML="N"
DEL="N"
if [ "X$1" = "X-h" ]
then	HTML="Y"
	shift
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

cat "$@@" |

# protect HTML input if in HTML mode
if [ "$HTML" = "Y" ]
then	sed 	-e 's/\&/\&amp;/g' \
		-e 's/</\&lt;/g' \
		-e 's/>/\&gt;/g' \
		-e 's/"/\&quot;/g'
else	cat
fi |

# mark each line with a datetime and line number, for sorting and merging
# we are just pre-processing the file at this point
# We don't print anything from the -- or == line and the date:

awk '	BEGIN	{html="'"$HTML"'"; lineno = 0;}
	# store working directory
	$0 ~ /^Working file:/	{workingfile = "/" $3}

	($0 ~ /^====*$/ || $0 ~ /^----*$/) \
	{
		# print blank line to separate entries
		if (datetime != "")
		{
 			if (html != "Y")
				printf ("%s| %10d|%s\n", datetime, lineno++, "");
			printf ("%s| %10d|", datetime, lineno++);
 			if (html != "Y")
				printf ("%s\n", "---");
			else	printf ("<HR>\n");
		}
		datetime="";
	}

	# if we have a saved datetime, print filename, date line, and committer
	datetime != "" && $1 != "branches:" {printf ("%s| %10d| %s\n", datetime, lineno++, $0);}

	$1 == "date:" \
	{
		# get entry date
		datetime=$2"-"$3
		if (workingfile != "")
		{
			printf ("%s| %10d|", datetime, lineno++);
			if (html != "Y")
				printf ("%s%s\n", workingfile, back_branch);
			else	printf ("<SMALL><FONT COLOR=\"red\">%s%s</FONT></SMALL>\n", workingfile, back_branch);

			# output name of committer
			# remove semicolon from committers name
			gsub("/", "-", $2);
			gsub(";", "", $3);
			gsub(";", "", $5);
			printf ("%s| %10d|", datetime, lineno++);
			if (html != "Y")
				printf ("%78s\n", $5);
			else	printf ("<DIV ALIGN=\"right\"><SMALL><FONT COLOR=\"teal\">%s</FONT> <FONT COLOR=\"green\">%s</FONT></SMALL></DIV>\n", $5, $2);
		}
	}

	# mark back branches
	$1 == "revision" \
	{
		# back branches have +2 periods in revision number
		if ($2 ~ /\..*\./)
			back_branch=" <branch>"
		else	back_branch = ""
	}

	/* clear working file */
	$0 ~ /^====*$/	{workingfile=""}' |

sort | cut -d'|' -f3 |

# collect duplicate narratives
# print file names as we get them, then print narrative when a new 
# narrative appears
# have to save two narratives to compare them

awk '   BEGIN   { narr_slot = 0; oldnarr_slot=0; save_working = ""; 
		  html="'"$HTML"'"}
	{
		# We have a filename, so we look at the previous
		# narrative to see if it is new narrative text.
		if ($0 ~ "^/")
		{
			# If there are a different number of narrative
			# lines, they cannot possibly be the same.
			if (narr_slot != oldnarr_slot)
				same = "N";
			else
			{
				same = "Y";
				for (i=1; i <= narr_slot; i++)
				{
					if (oldnarr[i] != narr[i])
					{
						same = "N";
						break;
					}
				}
			}

			# dump out the old narrative if it is new
			if (same == "N")
			{
				if (oldnarr_slot)
					for (i=1; i <= oldnarr_slot; i++)
					{
						print oldnarr[i];
						if (html == "Y" && 
						    oldnarr[i] != "<HR>" &&
						    oldnarr[i] !~ "^<DIV ")
							print "<BR>";
					}

				# save the current narrative
				for (i=1; i <= narr_slot; i++)
					oldnarr[i] = narr[i];
				oldnarr_slot = narr_slot;
			}
			narr_slot = 0;

			# dump out the previous filename
			print save_working;

			if (html == "Y")
				print "<BR>";

			# store the current filename for later printing
			save_working = $0;
		}
		else
		# we have a narrative line
		{
			# accumulate narrative
			narr[++narr_slot] = $0;
		}
	}
	END \
	{
		# If there are a different number of narrative
		# lines, they can not possibly be the same.
		if (narr_slot != oldnarr_slot)
			same = "N";
		else
		{
			same = "Y";
			for (i=1; i <= narr_slot; i++)
			{
				if (oldnarr[i] != narr[i])
				{
					same = "N";
					break;
				}
			}
		}

		# dump out the old narrative if it is new
		if (same == "N")
		{
			if (oldnarr_slot)
				for (i=1; i <= oldnarr_slot; i++)
				{
					print oldnarr[i];
					if (html == "Y" && 
					    oldnarr[i] != "<HR>" &&
					    oldnarr[i] !~ "^<DIV ")
						print "<BR>";
				}
		}

		# dump out the last filename
		print save_working;

		if (html == "Y")
			print "<BR>";

		# dump out the last narrative
		for (i=1; i <= narr_slot; i++)
		{
			print narr[i];
			if (html == "Y" && 
			    narr[i] != "<HR>" &&
			    narr[i] !~ "^<DIV ")
				print "<BR>";
		}
	}' |

# add HTML wrapper
if [ "$HTML" = "Y" ]
then	echo "<HTML>"
	echo "<HEAD>"
	echo "<TITLE>CVS</TITLE>"
	echo "</HEAD>"
	echo "<BODY>"
	cat
	echo "</BODY>"
	echo "</HTML>"
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
@


1.39
log
@Add comment.
@
text
@d3 1
a3 1
# $PostgreSQL: pgsql/src/tools/pgcvslog,v 1.38 2007/10/05 18:40:52 momjian Exp $
a31 9
#
# Remove these from the log file before processing to reduce the number
# of unneeded log entries:
#
#	/cvsroot/pgsql/doc/TODO
#	/cvsroot/pgsql/doc/FAQ
#	/cvsroot/pgsql/doc/src/FAQ/TODO.html
#	/cvsroot/pgsql/doc/src/FAQ/FAQ.html
#
a73 6
	# no need to show TODO or FAQ changes in the output
	$0 !~ /^====*$/ &&
	(workingfile == "/doc/TODO" || workingfile == "/doc/src/FAQ/TODO.html" ||
	 workingfile == "/doc/FAQ" || workingfile == "/doc/src/FAQ/FAQ.html") \
		{next}

@


1.38
log
@Add comment about cvs branch numbers.
@
text
@d3 1
a3 1
# $PostgreSQL: pgsql/src/tools/pgcvslog,v 1.37 2007/10/05 16:42:32 momjian Exp $
d11 1
@


1.37
log
@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.
@
text
@d3 1
a3 1
# $PostgreSQL: pgsql/src/tools/pgcvslog,v 1.36 2007/10/01 13:04:55 momjian Exp $
d132 1
@


1.36
log
@Update pgcvslog text to simply "<branch>"
@
text
@d3 1
a3 1
# $PostgreSQL: pgsql/src/tools/pgcvslog,v 1.35 2007/10/01 03:01:38 momjian Exp $
d8 2
a9 1
# Usage:  pgcvslog [-h]
d12 5
d41 2
d46 15
a60 1
else	HTML="N"
d152 1
a152 1
		if ($0 ~ "^/" || $0 ~ ">/")
d268 38
@


1.35
log
@Fixup for new pgcvslog feature.
@
text
@d3 1
a3 1
# $PostgreSQL: pgsql/src/tools/pgcvslog,v 1.34 2007/10/01 02:59:03 momjian Exp $
d111 1
a111 1
			back_branch=" <back-patch>"
@


1.34
log
@Have pgcvslog mark back-branch commits with "<back-patch>".
@
text
@d3 1
a3 1
# $PostgreSQL: pgsql/src/tools/pgcvslog,v 1.33 2007/01/31 22:17:03 momjian Exp $
d110 1
a110 1
		if ($2 ~ /\..*\./ && del == "Y")
@


1.33
log
@Update comment.
@
text
@d3 1
a3 1
# $PostgreSQL: pgsql/src/tools/pgcvslog,v 1.32 2006/10/08 01:39:59 momjian Exp $
d8 2
a9 1
# Usage $0 file
d53 1
d92 2
a93 2
				printf ("%s\n", workingfile);
			else	printf ("<SMALL><FONT COLOR=\"red\">%s</FONT></SMALL>\n", workingfile);
d107 8
d121 3
d125 2
a126 1
awk '   BEGIN   { slot = 0; oldslot=0; save_working = ""; html="'"$HTML"'"}
d130 1
a130 1
		if ($0 ~ /^\// || $0 ~ />\//)
d133 2
a134 2
			# lines, they can not possibly be the same.
			if (slot != oldslot)
d139 1
a139 1
				for (i=1; i <= slot; i++)
d152 2
a153 2
				if (oldslot)
					for (i=1; i <= oldslot; i++)
d163 1
a163 1
				for (i=1; i <= slot; i++)
d165 1
a165 1
				oldslot = slot;
d167 1
a167 1
			slot = 0;
d171 1
d182 1
a182 1
			narr[++slot] = $0;
d185 10
a194 6
	END	{
			# If there are a different number of narrative
			# lines, they can not possibly be the same.
			if (slot != oldslot)
				same = "N";
			else
d196 1
a196 2
				same = "Y";
				for (i=1; i <= slot; i++)
d198 2
a199 5
					if (oldnarr[i] != narr[i])
					{
						same = "N";
						break;
					}
d202 15
d218 2
a219 13
			# dump out the old narrative if it is new
			if (same == "N")
			{
				if (oldslot)
					for (i=1; i <= oldslot; i++)
					{
						print oldnarr[i];
						if (html == "Y" && 
						    oldnarr[i] != "<HR>" &&
						    oldnarr[i] !~ "^<DIV ")
							print "<BR>";
					}
			}
d221 2
a222 2
			# dump out the last filename
			print save_working;
d224 7
a230 1
			if (html == "Y")
d232 2
a233 11

			# dump out the last narrative
			for (i=1; i <= slot; i++)
			{
				print narr[i];
				if (html == "Y" && 
				    narr[i] != "<HR>" &&
				    narr[i] !~ "^<DIV ")
					print "<BR>";
			}
		}' |
@


1.32
log
@Update comments for pgcvslog, -r BASE does not work with cvs log.
@
text
@d3 1
a3 1
# $PostgreSQL: pgsql/src/tools/pgcvslog,v 1.31 2006/09/07 18:13:56 momjian Exp $
d11 1
a11 1
# cvs log -d '>1999-06-14 00:00:00 GMT' . > log
@


1.31
log
@Update pgcvslog comments.
@
text
@d3 1
a3 1
# $PostgreSQL: pgsql/src/tools/pgcvslog,v 1.30 2006/05/31 10:24:29 momjian Exp $
a12 3
# Branch of current directory:
# cvs log -d'>2000-05-29 00:00:00 GMT' -rBASE .
#
d20 1
a20 1
# cvs log -d'2005-05-08<2005-05-29' -rBASE .
@


1.30
log
@Update cvs command example to show diff -rBASE.
@
text
@d3 1
a3 1
# $PostgreSQL: pgsql/src/tools/pgcvslog,v 1.29 2006/03/15 03:24:17 momjian Exp $
d10 1
a10 1
# all branches:	
d13 1
a13 1
# current directory branch:
d18 2
a19 1
# branch:
d22 1
a22 1
# date range
@


1.29
log
@Fix typo in pgcvslog, used == instead of =.
@
text
@d3 1
a3 1
# $PostgreSQL: pgsql/src/tools/pgcvslog,v 1.28 2006/03/11 04:38:41 momjian Exp $
d13 4
a16 1
# head:
d22 1
a22 1
# cvs log -d'2005-05-08<2005-05-29' -b .
@


1.28
log
@Add CVS tag lines to files that were lacking them.
@
text
@d3 1
a3 1
# $PostgreSQL: pgsql/src/backend/utils/misc/guc.c,v 1.314 2006/03/07 02:54:23 momjian Exp $
d33 1
a33 1
if [ "X$1" == "X-h" ]
@


1.27
log
@Suppress FAQ and TODO changes in pgcvslog output.
@
text
@d1 4
a4 1
:
@


1.26
log
@Minor cleanup.
@
text
@d54 6
@


1.25
log
@Update comments.
@
text
@d98 1
a98 1
sort | cut -d'|' -f3 | cat |
@


1.24
log
@Improve comment.
@
text
@d21 7
a27 2
# Remove these:  TODO,v, TODO.html,v, FAQ,v, FAQ.html,v from logs
# before processing
@


1.23
log
@Update pgcvslog comment on how to find branch start time.

Run autoconf/autoheader in case someone forgot in the past.
@
text
@d21 2
a22 1
# Remove TODO and FAQ logs if desired
@


1.22
log
@Update pgcvslog examples.
@
text
@d18 3
@


1.21
log
@Update pgcvslog examples.
@
text
@d13 1
a13 1
# cvs log -d'>2000-05-29 00:00:00 GMT' -r REL8_0_STABLE` .
@


1.20
log
@Update comments.
@
text
@d13 1
a13 1
# cvs log -d'>2000-05-29 00:00:00 GMT' -rREL7_3_STABLE` .
d16 1
a16 1
# cvs log -d'2000-05-08 00:00:00 GMT<2000-05-29 00:00:00 GMT' -b .
@


1.19
log
@Update comments.
@
text
@d17 3
a19 1

@


1.18
log
@cvs log used -b for head, not -rHEAD.
@
text
@d10 1
a10 1
# one branch:
d12 1
@


1.17
log
@No need for Static.Entries, use -rHEAD.
@
text
@d11 1
a11 1
# cvs log -d'>2000-05-29 00:00:00 GMT' -rHEAD .
d15 1
a15 1
# cvs log -d'2000-05-08 00:00:00 GMT<2000-05-29 00:00:00 GMT' -rHEAD .
@


1.16
log
@Add example of cvs log pulls _just_ from HEAD.
@
text
@d7 2
a8 1
# no branches:	# cvs log -d '>1999-06-14 00:00:00 GMT' . > log
d10 1
a10 5
# pre and post-branch logs:
# 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_1_STABLE`.
d12 1
a12 3
# cvs log -d'>1999-06-14 00:00:00 GMT' . > log
#
# find . -name CVS -type d -exec rm '{}/Entries.Static' \;
d14 3
@


1.15
log
@Fixes to pgcvslog for last narrive entry.
@
text
@d12 3
a14 2
# 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_1_STABLE
@


1.14
log
@Improve CVS log grouping.
@
text
@d150 31
d182 1
a183 1
			print save_working;
d192 2
a193 2
				    oldnarr[i] != "<HR>" &&
				    oldnarr[i] !~ "^<DIV ")
@


1.13
log
@Update for 7.2.1.
@
text
@d59 1
a59 1
	datetime != "" {printf ("%s| %10d| %s\n", datetime, lineno++, $0);}
@


1.12
log
@Add HTML output option to pgcvslog.
@
text
@d11 1
a15 4
# pre and post-branch logs:
# 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' -r       
@


1.11
log
@Add HISTORY items for 7.1.2.
@
text
@d22 6
d30 9
d42 1
a42 1
awk '
d51 6
a56 2
			printf ("%s| %10d|%s\n", datetime, NR, "");
			printf ("%s| %10d|%s\n", datetime, NR, "---");
d62 1
a62 1
	datetime != "" {printf ("%s| %10d| %s\n", datetime, NR, $0);}
d64 1
a64 1
	$1 == "date:"	\
d70 6
d77 2
d80 4
a83 4
			printf ("%s| %10d|%s\n", datetime, NR-2, workingfile);
			printf ("%s| %10d|%s\n", datetime, NR-1, $0);
			# output name of committer
			printf ("%s| %10d|  %70s\n", datetime, NR+1, $5);
d94 1
a94 1
awk '   BEGIN   { slot = 0; oldslot=0; save_working = ""; }
d98 1
a98 2
		#
		if ($0 ~ /^\//)
d122 1
d124 5
d139 2
d145 1
a146 1
		else if ($1 != "date:")
d154 1
d156 2
d161 1
d163 19
a181 1
		}'
@


1.10
log
@Add missing space to sample cvs call.
@
text
@d12 7
a18 1
# cvs log -d'>2000-05-29 00:00:00 GMT' -rREL7_0_PATCHES
@


1.9
log
@Oops.  Remove extra semicolon in comment.
@
text
@d10 1
a10 1
# find . -name CVS -type d -exec touch'{}/Entries.Static' \;
@


1.8
log
@More cleanup.
@
text
@d45 1
a45 1
			# remove semicolon from committer's name
@


1.7
log
@Update pgcvslog to fix problem with duplicate narratives.
@
text
@d18 2
a19 3
# 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:
d22 1
d25 1
a25 1
	($0 ~ /^====*$/ || $0 ~ /^----*$/) && skip == "N" \
d27 1
a27 1
		/* print blank line separating entries */
a31 1
/*			printf ("%s| %10d|%s\n", datetime, NR+1, "");*/
a32 4
	}

	$0 ~ /^====*$/ || $0 ~ /^----*$/ \
	{
a33 1
		skip="N";
d36 2
a37 2
	datetime != "" && skip == "N" \
		{printf ("%s| %10d| %s\n", datetime, NR, $0);}
d41 1
a41 1
		/* get entry date */
d43 1
a43 1
		if (workingfile != "" && skip == "N")
d45 1
d49 1
a49 1
/*			printf ("%s| %10d|%s\n", datetime, NR, "");*/
d54 2
a55 1
	$0 ~ /^====*$/			{workingfile=""}' |
d60 1
d63 3
a65 6
		/* 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. */
d68 2
d85 1
a85 1
			/* dump out the old narrative if it is new */
d91 2
a92 1
				/* save the current narrative */
d99 1
a99 1
			/* dump out the previous filename */
d102 1
a102 1
			/* store the current filename for later printing */
d105 1
d108 1
a108 1
			/* accumulate narrative */
d113 1
a113 1
			/* dump out the last filename */
d116 1
a116 1
			/* dump out the last narrative */
@


1.6
log
@Make PROCEDURAL optional in CREATE/DROP LANGUAGE.
@
text
@d2 2
a3 2
# This utility is used to generate a compact list of changes for each
# release, bjm 2000-02-22
d7 1
a7 2
# no branches: 
# cvs log -d '>1999-06-14 00:00:00 GMT' . > log
d10 1
a10 1
# find . -name CVS -type d -exec touch '{}/Entries.Static' \;
d18 3
a20 2
# 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:
d52 4
a55 4
			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, "");
d59 1
a59 1
	$0 ~ /^====*$/ 			{workingfile=""}' |
d64 1
a64 1
awk '	BEGIN	{ slot = 0;}
d66 6
d75 1
a75 1
				same = 0;
d78 1
a78 1
				same = 1;
d82 4
a85 1
						same = 0;
d89 11
a99 6
			if (oldslot && !same)
				for (i=1; i <= oldslot; i++)
					print oldnarr[i];
			for (i=1; i <= slot; i++)
				oldnarr[i] = narr[i];
			oldslot = slot;
d101 2
d104 2
d107 1
a107 1
 		}
d109 2
d112 1
d115 1
d117 2
@


1.5
log
@Change bool to boolean in docs.
@
text
@d11 1
d14 1
d23 1
a23 1
	$0 ~ /^Working file:/	{workingfile = $0}
d32 1
a32 1
			printf ("%s| %10d|%s\n", datetime, NR+1, "");
d51 2
d66 1
a66 1
		if ($0 ~ /^Working file:/)
@


1.4
log
@update flags.
@
text
@d12 1
a12 1
# cvs log -d'>2000-05-29 00:00:00 GMT' -rREL7_0_PATCHES 
@


1.3
log
@Update pgcvslog
@
text
@a14 2
# pgcvslog -r '\.2\.[0-9]*$' log

@


1.2
log
@Update HISTORY file for 7.0.
@
text
@d5 1
a5 1
# Usage $0 [-r 'revision pattern'] file
d7 1
d9 6
a16 6
if [ "X$1" = "X-r" ]
then	REV="$2"
	shift 2
else	REV=".*"
fi

a23 2

	$1 == "revision" && $2 !~ /'"$REV"'/ {skip = "Y"}
@


1.1
log
@Well, here's the first pass on regression
tests for the Foreign Key support in 7.0 which
was made against a CVS copy from this
afternoon.

This modifies
 src/test/regress/sql/run_check.tests
 src/test/regress/sql/alter_table.sql
 src/test/regress/expected/alter_table.out
 src/test/regress/sql/foreign_key.sql
 src/test/regress/expected/foreign_key.out

sszabo@@bigpanda.co
@
text
@d7 1
a7 1
# cvs log -d '>1999-06-14 00:00:00 GMT' > log
@
