Somebody found an interesting problem in our 'svn cp wc URL' codepath.
The full recipe is below, and it reproduces for me using today's /trunk 1.1.0
code. Basically, the guy has a working copy all at r4. He backdates a single
file to r2, then tries to create a 'mixed revision tag' by running 'svn cp .
URL', just as the book recommends. He gets an out-of-date error on the file.
Is libsvn_fs somehow being too restrictive in its out-of-date checks?
Here's the recipe:
1) [tmp]$ svnadmin create /tmp/svnroot
2) [tmp]$ svn mkdir file:///tmp/svnroot/dir1 -m'Created top-level dir1'
3) Committed revision 1.
4) [tmp]$ svn co file:///tmp/svnroot/dir1
5) Checked out revision 1.
6) [tmp]$ cd dir1
7) [dir1]$ mkdir dir2
8) [dir1]$ echo 'first revision of file1' > dir2/file1
9) [dir1]$ echo 'first revision of file2' > dir2/file2
10) [dir1]$ svn add dir2
11) A dir2
12) A dir2/file1
13) A dir2/file2
14) [dir1]$ svn commit -m'Added dir2, file1, file2'
15) Adding dir2
16) Adding dir2/file1
17) Adding dir2/file2
18) Transmitting file data ..
19) Committed revision 2.
20)
21) [dir1]$ echo 'second revision of file1' > dir2/file1
22) [dir1]$ svn commit -m'Modified file1'
23) Sending dir2/file1
24) Transmitting file data .
25) Committed revision 3.
26) [dir1]$ svn copy . file:///tmp/svnroot/goodcopy -m'No problem with
copying this WC'
27)
28) Committed revision 4.
29) [dir1]$ svn up
30) At revision 4.
31) [dir1]$ svn up -r2 dir2/file1
32) U dir2/file1
33) Updated to revision 2.
34) [dir1]$ svn copy . file:///tmp/svnroot/badcopy -m'SVN does not like
this mixed-revision WC'
35) svn: Commit failed (details follow):
36) svn: Out of date: 'badcopy/dir2/file1' in transaction '9'