[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

sparse wc using svn 1.5, svnserve 1.4.6, svnadmin 1.4.6

From: Semen Vadishev <Semen.Vadishev_at_svnkit.com>
Date: Mon, 18 Aug 2008 17:18:24 +0400

Hello everyone,

Please have a look at bash script attached (
http://pastebin.com/f80d226b ). It reproduces a bug concerned with
sparse working copy created by svn 1.5 (I've tried 1.5.0, 1.5.1 and
1.5.x_at_head local build also) while using svn:// protocol (svnserve
1.4.6) with FSFS repository (created by svnadmin 1.4.6) as backend. Here
is the description of the problem (script prints it to stdout/stderr):

While using svn 1.5.1:

http://pastebin.com/mc4afb68

created repository:
trunk
 local
 remote
   deleteme

svn co --depth empty repo/trunk wc
svn update --depth infinity wc/local
svn delete repo/trunk/remote/deleteme
and now svn 'status -u' failes with error:

svn:
/tmp/buildd/subversion-1.5.1dfsg1/subversion/libsvn_ra_svn/marshal.c:473:
vwrite_tuple: Assertion `opt || cstr' failed.
./runserve.sh: line 61: 22191 Aborted $SVN status -u $WC

It is also interesting that svn 1.5.x (the most recent build from 1.5.x
branch) returns another error:

http://pastebin.com/m347e1242

subversion/libsvn_wc/status.c:1565: (apr_err=150000)
svn: '~/workspace/sandbox/tmp/wc/remote/deleteme' is not under version
control

any thoughts?

P.S. Probably you need to define paths for svn binaries to let script
run, you can find necessary variables at the beginning of the file.

-- 
Semen Vadishev
TMate Software,
http://svnkit.com/ - Java [Sub]Versioning Library!

#!/bin/sh

SVNSERVE_PORT=36380

# define home directories
SVN14_HOME=/usr/local/subversion_1.4
SVN15_HOME=/usr
JSVN_HOME=/usr/local/svnkit

SVN15=$SVN15_HOME/bin/svn
SVN14=$SVN14_HOMR/bin/svn
JSVN=$JSVN_HOME/lib/jsvn

# Here you may change binaries to use
SVN=$SVN15
SVNADMIN=$SVN14_HOME/bin/svnadmin
SVNSERVE=$SVN14_HOME/bin/svnserve

TMP=/tmp/sparse_wc_test
REPO_PATH=$TMP/repo
# REPO_URL=file://$REPO_PATH
REPO_URL=svn://localhost:$SVNSERVE_PORT
WC=$TMP/wc

SVNSERVE_PID_FILE=$TMP/svnserve.pid

create_cfg() {
        config=$1/conf/svnserve.conf
        echo "[general]" > $config
        echo "anon-access = write" >> $config
}

init() {
        if [ ! -d $SVN14_HOME ]; then
                echo "define home directory for svn version 1.4 binaries" >&2
                exit 1
        fi

        if [ ! -d $SVN15_HOME ]; then
                echo "define home directory for svn version 1.5 binaries" >&2
                exit 1
        fi

        rm -rf $TMP
        mkdir $TMP

        $SVNADMIN create $REPO_PATH
        create_cfg $REPO_PATH
        $SVNSERVE -d -r $REPO_PATH --listen-port $SVNSERVE_PORT --pid-file $SVNSERVE_PID_FILE

        mkdir $WC
        mkdir $WC/trunk
        mkdir $WC/trunk/remote
        echo "file content" > $WC/trunk/remote/deleteme
        mkdir $WC/trunk/local

        $SVN import -m "initial revision" $WC $REPO_URL
        rm -rf $WC
}

run() {
        $SVN co --depth empty $REPO_URL/trunk $WC
        $SVN update --depth infinity $WC/local

        $SVN delete -m "deleteme file removed" $REPO_URL/trunk/remote/deleteme

        $SVN status -u $WC
}

dispose() {
        pid=`cat $SVNSERVE_PID_FILE`
        kill -9 $pid
        rm -rf $TMP
}

init > /dev/null
echo "created repository:"
echo "trunk"
echo " local"
echo " remote"
echo " deleteme"
echo
echo "svn co --depth empty repo/trunk wc"
echo "svn update --depth infinity wc/local"
echo "svn delete repo/trunk/remote/deleteme"
echo "and now svn 'status -u' failes with error:"
echo
run > /dev/null
dispose > /dev/null

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-08-18 15:20:23 CEST

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.