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
Received on Mon Dec 2 04:09:00 2002