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

Re: externals bug?

From: Lee Merrill <LeeMerrill_at_bustech.com>
Date: 2004-09-13 15:01:43 CEST

Hi everyone,

    Here is a script that causes this problem, this only fails in
Subversion 1.0.6, version 1.1.0 RC2 is fine. The version that fails is
on Fedora core 1, with Berkeley DB 4.1.25-14, the version that works is
on RedHat 7.3, with Berkeley DB 4.2.52.NC. So this may already be fixed...


>> I changed the externals property on a directory to be revision 4,
>>commited the change, then in another local copy, did an "svn update"
>>(in the main directory, not in the externals directory). I got an
>>error message, "Working copy 'externals_dir/externals_subdir' not
>>locked," and half my files in the externals directory
>>disappeared. Doing an "svn update" in the externals directory brings
>>them back, doing a checkout in a fresh directory brings them in, but
>>this was a little disconcerting.
>Can you give us a concrete reproduction recipe...
Ye scripte:


function errFn()
    echo $1
    exit 1

mkdir $DIR/tmp || errFn "Cannot create directory $DIR/tmp"
cd $DIR/tmp

set -x

mkdir -p project1 src1/subdir
for i in 1 2 3 4 5
    echo "a$i" > src1/a$i
for i in 1 2 3 4 5
    echo "b$i" > src1/subdir/b$i
svnadmin create $DIR/tmp/project1
export PROJ1=file://$DIR/tmp/project1
cd src1
svn import $PROJ1 -m "Initial revision."

mkdir -p project2 src2/incdir/sub1 src2/incdir/sub2
for i in 1 2 3 4 5
echo "c$i" > src2/incdir/c$i
echo "d$i" > src2/incdir/sub1/d$i
echo "e$i" > src2/incdir/sub2/e$i
svnadmin create $DIR/tmp/project2
export PROJ2=file://$DIR/tmp/project2
cd src2
svn import $PROJ2 -m "Initial revision."

cd $DIR/tmp
mkdir edit1
cd edit1
svn checkout $PROJ1
cd project1
svn propedit --non-interactive svn:externals .
# Make externals have a value of "-r1 $PROJ2/incdir
# (e.g. "incdir -r1 file:///home/lee/tmp/project2/incdir")
svn commit -m "Linked in incdir in project 2"

cd $DIR/tmp
mkdir edit2
cd edit2
svn checkout $PROJ2
cd project2/incdir
echo "c1.2" >c1
svn commit -m "Changed incdir/c1 to c1.2"

cd $DIR/tmp
mkdir edit3
cd edit3
svn checkout $PROJ1

cd $DIR/tmp
mkdir edit4
cd edit4
svn checkout $PROJ1

cd $DIR/tmp/edit3/project1
svn propedit --non-interactive svn:externals .
# Make externals have a value of "-r2 $PROJ2/incdir
svn commit -m "Updated externals to release 2"

cd $DIR/tmp/edit4/project1
svn update

# Now files (c1 to c5) are missing in $DIR/tmp/edit4/project1/incdir
# cd $DIR/tmp/edit4/project1/incdir; svn update
# will bring them back.

+ Lee Merrill    lee@bustech.com    919-866-2008
Unless otherwise stated, any views presented in this email are solely those of the author and do not necessarily represent those of the company.
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Mon Sep 13 15:02:58 2004

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