Ah, I bet the issue is with the svn_delta_depth_filter_editor.
--dave
On Wed, May 28, 2008 at 11:29 PM, David Glasser
<glasser_at_davidglasser.net> wrote:
> I can reproduce this with 1.4.x svnserve but not trunk svnserve.
>
> Note that the actual over-the-wire communication seems identical,
> which is kind of wacky. But maybe the lack of depth capability is
> triggering some compat code, which is broken?
>
> --dave
>
> On Wed, May 28, 2008 at 11:12 PM, David Glasser
> <glasser_at_davidglasser.net> wrote:
>> 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
>>
>
>
>
> --
> David Glasser | glasser@davidglasser.net | http://www.davidglasser.net/
>
--
David Glasser | glasser@davidglasser.net | http://www.davidglasser.net/
---------------------------------------------------------------------
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:32:59 CEST