summaryrefslogtreecommitdiff
path: root/Master/tlpkg/bin/archive
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-12-31 18:46:04 +0000
committerKarl Berry <karl@freefriends.org>2019-12-31 18:46:04 +0000
commit9cf015b0509e5eac51b7de4fac5af14e6cca3eb8 (patch)
tree12b9f348f8d9d05a6ec1c40fd8b1fd5e11496caf /Master/tlpkg/bin/archive
parent601d6dcb85e8ad0a55f27f1a04eb1cabf85f8f91 (diff)
renice, doc, archive old script
git-svn-id: svn://tug.org/texlive/trunk@53278 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/bin/archive')
-rwxr-xr-xMaster/tlpkg/bin/archive/svnchangelog100
1 files changed, 100 insertions, 0 deletions
diff --git a/Master/tlpkg/bin/archive/svnchangelog b/Master/tlpkg/bin/archive/svnchangelog
new file mode 100755
index 00000000000..ed86ff3439a
--- /dev/null
+++ b/Master/tlpkg/bin/archive/svnchangelog
@@ -0,0 +1,100 @@
+#!/bin/sh
+# $Id$
+# Public domain. Originally written 2004, Karl Berry.
+# Get change info from svn log. (see now-deleted p4changelog for the
+# previous code using p4.)
+#
+# Not used since the beginning of regular commit email:
+# https://tug.org/pipermail/tex-live/
+
+umask 0
+
+debug=true
+chicken=${OVERRIDE_CHICKEN-false}
+
+# to get started, ran svn log and put the first thousand changes in log.
+
+# we are in Master/tlpkg/bin
+mydir=`dirname $0` # Master/tlpkg/bin
+outdir=`cd $mydir/../../../Build/logs && pwd`
+outfile=$outdir/svnlog
+test ! -f $outfile && exit 2 # error probably given by the cd
+
+# get the revision number we last logged
+line=`grep '^r[0-9]' $outfile | head -1 | sed 's/^r//'`
+lastlogged=`echo "$line" | awk '{print $1}'`
+echo "$lastlogged" | egrep '^[0-9]+$' >/dev/null \
+|| { echo "$0: no change number in r line of $outfile: $line";
+ exit 1; }
+
+nextneeded=`expr $lastlogged + 1`
+$debug && echo "lastlogged=$lastlogged, nextneeded=$nextneeded"
+if test -z "$nextneeded"; then
+ echo "$0: empty nextneeded?!"
+ exit 1
+fi
+
+# get the log info since then.
+tlroot=`cd $mydir/../../.. && pwd`
+newlogs=$outdir/newlogdata
+svn log -v -r HEAD:$nextneeded $tlroot >$newlogs || exit 1
+# with HEAD:next we get the entries newest first, as we want them.
+$debug && ls -l $newlogs
+
+line=`grep '^r[0-9]* |' $newlogs | head -1 | sed 's/^r//'`
+latestchange=`echo "$line" | awk '{print $1}'`
+$debug && echo "latestchange=$latestchange"
+if test -z "$latestchange"; then
+ echo "$0: empty latestchange?!"
+ exit 1
+fi
+
+# done if nothing submitted since last change.
+# or if only one commit has been made, because we ourselves do a commit,
+# so otherwise we'd add a useless entry every time we're run.
+test $latestchange -le $nextneeded && exit 0
+
+# rotate logs if crossed a 1000-change mark.
+rotate=false
+for c in `seq $latestchange -1 $nextneeded`; do
+ echo $c | grep '001$' >/dev/null && rotate=true
+done
+$debug && echo "rotate=$rotate"
+
+if ! $chicken && $rotate; then
+ mv -v $outfile $outfile.$lastlogged
+ gzip -v $outfile.$lastlogged
+ chmod 444 $outfile.$lastlogged.gz
+ ls -l $outfile.$lastlogged.gz
+ svn add $outfile.$lastlogged.gz
+ cp /dev/null $outfile
+fi
+
+# prepend new changes to current log, and put log messages first.
+$mydir/../libexec/svnchangelog.sed $newlogs >$outfile.new
+cat $outfile >>$outfile.new
+
+if $debug; then # really debug
+ # show first and last change number in each file.
+ for f in $newlogs $outfile $outfile.new; do
+ echo
+ (cd `dirname $f` && ls -l `basename $f`)
+ grep '^r[0-9]* |' $f | head -1
+ grep '^r[0-9]* |' $f | tail -1
+ done
+fi
+
+if ! $chicken; then
+ mv $outfile.new $outfile
+ echo "svn commit..."
+ svn commit -m"regenerated by $0" $outdir
+fi
+
+$mydir/../libexec/svnchangelog.sed $newlogs # show it to me
+$debug || rm -f $newlogs $outfile.new # keep them in case of problems
+
+exit 0
+
+# to get things started:
+svn log -v -r 1000:1 /home/texlive/trunk/ >svnlog
+svn add svnlog