hdf5/bin/snapshot
Robb Matzke 46f683cf14 [svn-r876] Changes since 19981102
----------------------

./bin/snapshot
	Made same fix as for the release script yesterday.

./src/H5D.c
./src/H5Dprivate.h
./src/H5G.c
./src/H5Gprivate.h
./src/H5Gpublic.h
./src/H5O.c
./src/H5Oprivate.h
./src/H5RA.c
./src/H5RAprivate.h
./src/H5T.c
./src/H5Tprivate.h
	Improved object type checking.  Instead of determining the
	object type by trying to open each of the possible types, we
	keep a table of associations between object type number (like
	H5G_GROUP, H5G_DATASET, H5D_TYPE, and H5D_RAGGED) and an `isa'
	function that returns true if the object header has the right
	messages to make the object a particular type.  This mechanism
	also allows specialization of object types by permitting an
	object to satisfy more than one `isa' function.

	Added `isa' functions for groups, datasets, ragged arrays, and
	committed data types.

./src/H5config.h.in
	Added HAVE_STAT_ST_BLOCKS.  I thought this had already been
	added, but apparently not.

./tools/h5ls.c
	Removed system include files since they're already included by
	H5private.h and since I wasn't including them portably anyway.

	By default, 1-byte integer types are printed as integer values
	instead of ASCII characters. However, the `-s' or `--string'
	command-line switch causes the data to be interpretted as
	ASCII.  String data types are always printed as character
	data.

	Ragged arrays are now identified as ragged arrays and h5ls
	doesn't descend into the group automatically.  This uses the
	new object type specialization stuff.

./tools/h5tools.c
./tools/h5tools.h
	Added the ability to print 1-byte integer types as either
	ASCII or numeric data instead of always ASCII.  The default is
	to print as numeric data.
1998-11-05 15:28:34 -05:00

81 lines
2.2 KiB
Bash
Executable File

#!/bin/sh
set -x
date
#
# This script should be run nightly from cron. It checks out hdf5
# from the CVS source tree and compares it against the previous
# snapshot. If anything significant changed then a new snapshot is
# created, the minor version number is incremented, and the change is
# checked back into the CVS repository.
#
# The path isn't properly initialized on hawkwind -- /usr/local/bin is
# either missing or is after /usr/bin when it should be before.
PATH="/usr/local/bin:$PATH"
# Where are the snapshots stored?
ARCHIVES=/hdf3/ftp/pub/outgoing/hdf5/snapshots
if [ "$1" ]; then
ARCHIVES="$1"
shift
fi
# What compression methods to use?
METHODS="gzip bzip2"
# Create a working directory. Hopefully one is left over from last
# time that still has the contents of the previous release. But if
# not, just create one and assume that a snapshot is necessary.
COMPARE=${HOME}/hdf5-snapshots
test -d ${COMPARE} || mkdir -p ${COMPARE} || exit 1
# Check out the current version from CVS
if [ -z "$CVSROOT" ]; then
echo "Where is the CVS repository?" 1>&2
exit 1
fi
cvs -Q co -d ${COMPARE}/current hdf5 || exit 1
# Compare it with the previous version. Compare only files listed in
# the MANIFEST plus the MANIFEST itself.
snapshot=yes
if [ -d ${COMPARE}/previous ]; then
if (diff -c ${COMPARE}/previous/MANIFEST ${COMPARE}/current/MANIFEST); then
snapshot=no
for src in `grep '^\.' ${COMPARE}/current/MANIFEST|expand|cut -f1 -d' '`; do
if (diff -I H5_VERS_RELEASE -I " released on " \
${COMPARE}/previous/$src ${COMPARE}/current/$src); then
else
snapshot=yes
# Don't break because we want to see all the diffs.
#break
fi
done
fi
fi
# Make sure all the serial tests work.
if [ "$snapshot" = "yes" ]; then
if (cd ${COMPARE}/current; cp -p Makefile.dist Makefile; make _test); then
:
else
snapshot=no
fi
(cd ${COMPARE}/current; make distclean)
fi
# Release snapshot, update version, and commit to cvs
if [ "$snapshot" = "yes" ]; then
(
cd ${COMPARE}/current
./bin/release -d $ARCHIVES $METHODS
./bin/h5vers -i
cvs -Q commit -m Snapshot
)
fi
# Replace the previous version with the current version.
rm -rf ${COMPARE}/previous
mv ${COMPARE}/current ${COMPARE}/previous
exit 0