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

Re: svn up --depth empty breaks working copy

From: David Glasser <glasser_at_davidglasser.net>
Date: Wed, 28 May 2008 23:12:18 -0700

I have a reproduction script.

needs-lock was a red herring, I think; the important thing to
reproduce is to use a 1.4.x server.

#!/bin/sh -ex

CLIENT_BIN_DIR=/opt/svn/trunk/bin
SERVER_BIN_DIR=/opt/svn/1.4.x/bin

SVN=$CLIENT_BIN_DIR/svn
SVNSERVE=$SERVER_BIN_DIR/svnserve
SVNADMIN=$SERVER_BIN_DIR/svnadmin
alias svn='echo "Use \$SVN." # '
alias svnserve='echo "Use \$SVNSERVE." # '
alias svnadmin='echo "Use \$SVNADMIN." # '

svnserve_port=$(($RANDOM+1024))
# URL=http://localhost/SOMETHING/repos
URL=svn://localhost:$svnserve_port/repos
# URL=file:///`pwd`/repos

rm -rf repos wc* import-me

${SVNADMIN} create repos
echo "[general]" > repos/conf/svnserve.conf
echo "anon-access = write" >> repos/conf/svnserve.conf
echo "auth-access = write" >> repos/conf/svnserve.conf

svnserve_pid=''
clean_exit() {
  set +e
  [[ -n "$svnserve_pid" ]] && kill -9 "$svnserve_pid"
}
trap clean_exit EXIT

rm -f .svnserve_pid
${SVNSERVE} --listen-port $svnserve_port --pid-file .svnserve_pid -d -r `pwd`
while [[ ! -r .svnserve_pid ]]; do sleep 0.01; done
svnserve_pid=`cat .svnserve_pid`

echo "### Making a Greek Tree for import..."
mkdir import-me
mkdir import-me/trunk
mkdir import-me/tags
mkdir import-me/branches
mkdir import-me/trunk/A
mkdir import-me/trunk/A/B/
mkdir import-me/trunk/A/C/
mkdir import-me/trunk/A/D/
mkdir import-me/trunk/A/B/E/
mkdir import-me/trunk/A/B/F/
mkdir import-me/trunk/A/D/G/
mkdir import-me/trunk/A/D/H/
echo "This is the file 'iota'." > import-me/trunk/iota
echo "This is the file 'A/mu'." > import-me/trunk/A/mu
echo "This is the file 'A/B/lambda'." > import-me/trunk/A/B/lambda
echo "This is the file 'A/B/E/alpha'." > import-me/trunk/A/B/E/alpha
echo "This is the file 'A/B/E/beta'." > import-me/trunk/A/B/E/beta
echo "This is the file 'A/D/gamma'." > import-me/trunk/A/D/gamma
echo "This is the file 'A/D/G/pi'." > import-me/trunk/A/D/G/pi
echo "This is the file 'A/D/G/rho'." > import-me/trunk/A/D/G/rho
echo "This is the file 'A/D/G/tau'." > import-me/trunk/A/D/G/tau
echo "This is the file 'A/D/H/chi'." > import-me/trunk/A/D/H/chi
echo "This is the file 'A/D/H/omega'." > import-me/trunk/A/D/H/omega
echo "This is the file 'A/D/H/psi'." > import-me/trunk/A/D/H/psi
echo "### Done."
echo ""
echo "### Importing it..."
(cd import-me; ${SVN} import -q -m "Initial import." ${URL})
echo "### Done."
echo ""

${SVN} co ${URL}/trunk wc

cd wc
echo "Modification in r2." >>iota
$SVN ci -m "Append to iota in r2."

$SVN up iota -r1 --depth=empty

# Look at the output from 'svn info'. It claims "Revision: 1". But
# then "Last Changed Rev: 2" (eek!), and catting both iota and its
# text-base reveals the r2 change.

$SVN info iota
$SVN st iota
cat iota
cat .svn/text-base/iota.svn-base

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-05-29 08:12:34 CEST

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