svn commit: r190514 - head/sys/conf
Doug Barton
dougb at FreeBSD.org
Sat Aug 15 19:34:48 UTC 2009
John Baldwin wrote:
> On Thursday 13 August 2009 2:57:10 pm Doug Barton wrote:
>> Bjoern A. Zeeb wrote:
>>> Author: bz
>>> Date: Sat Mar 28 23:17:18 2009
>>> New Revision: 190514
>>> URL: http://svn.freebsd.org/changeset/base/190514
>>>
>>> Log:
>>> For kernel builds reduce the impact of svnversion, just scanning
>>> src/sys and not the entire src/ tree.
>> Also, what problem are we really trying to solve here? With a
>> populated cache it takes on average 5 seconds to run all of src, and
>> just under 1 to do only sys. Is 4 seconds really that important to
>> save? With a dry cache I'm sure it takes a little longer, but has
>> anyone actually measured this?
>
> It takes far longer than 5 seconds here against a local SVN repo over NFS.
Looking at this in a little more depth, the only place that the
svnversion feature is relevant is for the kernel build. The other
places that call newvers.sh don't make use of that information.
So I've got a patch to the current version that only does the svn
stuff if newvers.sh is being called for the kernel build. I've
attached the regular svn diff and a -bB version since it's a bit hard
to read. It's easier to see what's going on if you apply it.
If no one objects I'll ask re@ for approval to commit it.
Doug
--
This .signature sanitized for your protection
-------------- next part --------------
Index: newvers.sh
===================================================================
--- newvers.sh (revision 196257)
+++ newvers.sh (working copy)
@@ -87,29 +87,25 @@
v=`cat version` u=${USER:-root} d=`pwd` h=${HOSTNAME:-`hostname`} t=`date`
i=`${MAKE:-make} -V KERN_IDENT`
-for dir in /bin /usr/bin /usr/local/bin; do
- if [ -x "${dir}/svnversion" ]; then
- svnversion=${dir}/svnversion
- SRCDIR=${d##*obj}
- if [ -n "$MACHINE" ]; then
- SRCDIR=${SRCDIR##/$MACHINE}
+case "$d" in
+*/sys/*)
+ for dir in /bin /usr/bin /usr/local/bin; do
+ if [ -x "${dir}/svnversion" ]; then
+ svnversion=${dir}/svnversion
+ SRCDIR=${d##*obj}
+ if [ -n "$MACHINE" ]; then
+ SRCDIR=${SRCDIR##/$MACHINE}
+ fi
+ SRCDIR=${SRCDIR%%/sys/*}
+ break
fi
- SRCDIR=${SRCDIR%%/sys/*}
- break
- fi
-done
+ done
-if [ -n "$svnversion" -a -d "${SRCDIR}/.svn" ] ; then
- # If we are called from the kernel build, limit
- # the scope of svnversion to sys/ .
- if [ -e "${SRCDIR}/sys/conf/newvers.sh" ] ; then
- svn=" r`cd $SRCDIR/sys && $svnversion`"
- else
- svn=" r`cd $SRCDIR && $svnversion`"
+ if [ -n "$svnversion" -a -d "${SRCDIR}/sys/.svn" ] ; then
+ svn=" r`cd ${SRCDIR}/sys && $svnversion`"
fi
-else
- svn=""
-fi
+ ;;
+esac
cat << EOF > vers.c
$COPYRIGHT
-------------- next part --------------
--- .svn/text-base/newvers.sh.svn-base 2009-07-16 13:20:31.000000000 -0700
+++ newvers.sh 2009-08-15 12:29:27.000000000 -0700
@@ -28,7 +28,7 @@
# SUCH DAMAGE.
#
# @(#)newvers.sh 8.1 (Berkeley) 4/20/94
-# $FreeBSD$
+# $FreeBSD: head/sys/conf/newvers.sh 195712 2009-07-15 17:29:05Z kensmith $
TYPE="FreeBSD"
REVISION="8.0"
@@ -87,7 +87,9 @@
v=`cat version` u=${USER:-root} d=`pwd` h=${HOSTNAME:-`hostname`} t=`date`
i=`${MAKE:-make} -V KERN_IDENT`
-for dir in /bin /usr/bin /usr/local/bin; do
+case "$d" in
+*/sys/*)
+ for dir in /bin /usr/bin /usr/local/bin; do
if [ -x "${dir}/svnversion" ]; then
svnversion=${dir}/svnversion
SRCDIR=${d##*obj}
@@ -97,19 +99,13 @@
SRCDIR=${SRCDIR%%/sys/*}
break
fi
-done
+ done
-if [ -n "$svnversion" -a -d "${SRCDIR}/.svn" ] ; then
- # If we are called from the kernel build, limit
- # the scope of svnversion to sys/ .
- if [ -e "${SRCDIR}/sys/conf/newvers.sh" ] ; then
- svn=" r`cd $SRCDIR/sys && $svnversion`"
- else
- svn=" r`cd $SRCDIR && $svnversion`"
+ if [ -n "$svnversion" -a -d "${SRCDIR}/sys/.svn" ] ; then
+ svn=" r`cd ${SRCDIR}/sys && $svnversion`"
fi
-else
- svn=""
-fi
+ ;;
+esac
cat << EOF > vers.c
$COPYRIGHT
More information about the freebsd-current
mailing list