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

Re: bug round 2

From: <cmpilato_at_collab.net>
Date: 2002-12-06 16:40:30 CET

Philip, I'm having a brain-O moment right now. I've been looking at
this recipe for a bit this morning, and I can't figure out why you've
deemed ra_local corrent, and ra_dav incorrect, in this case? Can you
ignore the fact that I *should* be able to understand this stuff, and
tell me anyway? :-) Thanks.

Philip Martin <philip@codematters.co.uk> writes:

> Michael Price <mprice@atl.lmco.com> writes:
>
> > $ ~/tmp> dir
> > $ ~/tmp> svn co http://jail/svn/test
> > Checked out revision 0.
> > $ ~/tmp> cd test
> > $ ~/tmp/test> svn mkdir "dir1"
> > A dir1
> > $ ~/tmp/test> cd dir1
> > $ ~/tmp/test/dir1> svn mkdir dir2
> > A dir2
> > $ ~/tmp/test/dir1> cd ..
> > $ ~/tmp/test> svn commit -m "new dirs"
> > Adding dir1
> > Adding dir1/dir2
> >
> > Committed revision 1.
> > $ ~/tmp/test> cd dir1
> > $ ~/tmp/test/dir1> cd dir2
> > $ ~/tmp/test/dir1/dir2> echo "file" > file1
> > $ ~/tmp/test/dir1/dir2> svn add file1
> > A file1
> > $ ~/tmp/test/dir1/dir2> svn commit -m "new file"
> > Adding dir2/file1
> > Transmitting file data .
> > Committed revision 2.
> > $ ~/tmp/test/dir1/dir2> echo "new" > file2
> > $ ~/tmp/test/dir1/dir2> svn add file2
> > A file2
> > $ ~/tmp/test/dir1/dir2> svn rm file1
> > D file1
> > $ ~/tmp/test/dir1/dir2> svn commit -m "delete one add one"
> > Deleting dir2/file1
> > Adding dir2/file2
> > Transmitting file data .
> > Committed revision 3.
> > $ ~/tmp/test/dir1/dir2> cd ..
> > $ ~/tmp/test/dir1> cd ..
> > $ ~/tmp/test> svn mkdir newdir
> > A newdir
> > $ ~/tmp/test> svn commit -m "director"
> > Adding newdir
> >
> > Committed revision 4.
> > $ ~/tmp/test> svn mv dir1 newdir
> > A newdir/dir1
> > D dir1/dir2/file2
> > D dir1/dir2
> > D dir1
> > $ ~/tmp/test> svn commit -m "mv"
> > Deleting dir1
> > Adding newdir/dir1
> > Adding newdir/dir1/dir2/file2
> >
> > Committed revision 5.
>
> This is a bug. It should fail here with transaction out of date. It
> *does* fail over ra_local, but not over ra_dav.
>
> $ cat doit
> export REPO=file:///tmp/repo
> #export REPO=http://localhost:8888/tmp/repo
> rm -rf /tmp/repo wc
> svnadmin create /tmp/repo
> svn co $REPO wc
> svn mkdir wc/dir1
> svn mkdir wc/dir1/dir2
> svn ci -m "new dirs" wc
> echo file1 > wc/dir1/dir2/file1
> svn add wc/dir1/dir2/file1
> svn ci -m "new file" wc
> echo file2 > wc/dir1/dir2/file2
> svn add wc/dir1/dir2/file2
> svn rm wc/dir1/dir2/file1
> svn ci -m "delete one add one" wc
> svn mkdir wc/newdir
> svn ci -m "director" wc
> svn mv wc/dir1 wc/newdir
> svn ci -m "mv" wc
>
> Over ra_local I get
>
> ...
> Committed revision 4.
> A wc/newdir/dir1
> D wc/dir1/dir2/file2
> D wc/dir1/dir2
> D wc/dir1
> Deleting wc/dir1
> svn: Transaction is out of date
> svn: Commit failed (details follow):
> svn: out of date: `dir1' in txn `5'
>
> as expected, but over ra_dav I get
>
> ...
> Committed revision 4.
> A wc/newdir/dir1
> D wc/dir1/dir2/file2
> D wc/dir1/dir2
> D wc/dir1
> Deleting wc/dir1
> Adding wc/newdir/dir1
> Adding wc/newdir/dir1/dir2/file2
>
> Committed revision 5.
>
> In both cases (ra_dav and ra_local) the working copy before the move
> looks like
>
> 0 0 ? wc
> 1 1 anonymous wc/dir1
> 1 1 anonymous wc/dir1/dir2
> 3 3 anonymous wc/dir1/dir2/file2
> 4 4 anonymous wc/newdir
> Head revision: 4
>
> and after the move but before the commit it looks like
>
> 0 0 ? wc
> D 1 1 anonymous wc/dir1
> D 1 1 anonymous wc/dir1/dir2
> D 3 3 anonymous wc/dir1/dir2/file2
> 4 4 anonymous wc/newdir
> A + - 1 anonymous wc/newdir/dir1
> + - 1 anonymous wc/newdir/dir1/dir2
> + - 3 anonymous wc/newdir/dir1/dir2/file2
>
> so ra_dav and mod_dav_svn are the likely suspects.
>
> --
> Philip Martin
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
> For additional commands, e-mail: dev-help@subversion.tigris.org

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Fri Dec 6 16:44:19 2002

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