Hi,

this already happened a few times here, but now I managed to re-create it reliably. This happens at least on Linux with subversion-1.8/subversion-1.10 and on Windows with TortoiseSVN-1.9, didn't test older versions yet. Server is subversion-1.9.5
on Linux, a "svnadmin verify" of a repository hotcopy showed no problems

This slightly obfuscated transcript shows the problem:

-->
$ rm -rf myrepo.wc
$ svn co https://svnserver/svn/myrepo/trunk/some/path/src myrepo.wc/
...
Checked out revision 98863.
$ svn status --verbose myrepo.wc/mysrc[34].c
             98867    93474 user1        myrepo.wc/mysrc3.c
             98867    87357 user2        myrepo.wc/mysrc4.c
$ svn up -r 85950 myrepo.wc
...
At revision 85950.
$ svn status --verbose myrepo.wc/mysrc[34].c
             85950    93474 user1        myrepo.wc/mysrc3.c
             85950    83501 user3        myrepo.wc/mysrc4.c
--<

As you can see, mysrc3.c has a too high last_commit revision and also the content of the file is too new after the first downgrading with "svn up -r 85950 myrepo.wc".

The following procedure fixes the problem:

-->
$ svn update -r85950 myrepo.wc/mysrc3.c
Updating 'myrepo.wc/mysrc3.c':
At revision 85950.
$ svn status --verbose myrepo.wc/mysrc[34].c
             85950    93474 user1        myrepo.wc/mysrc3.c
             85950    83501 user3        myrepo.wc/mysrc4.c
$ svn update -rPREV myrepo.wc/mysrc3.c
Updating 'myrepo.wc/mysrc3.c':
U    myrepo.wc/mysrc3.c
Updated to revision 93473.
$ svn status --verbose myrepo.wc/mysrc[34].c
             93473    87225 user2        myrepo.wc/mysrc3.c
             85950    83501 user3        myrepo.wc/mysrc4.c
$ svn update -r85950 myrepo.wc/mysrc3.c
Updating 'myrepo.wc/mysrc3.c':
U    myrepo.wc/mysrc3.c
Updated to revision 85950.
$ svn status --verbose myrepo.wc/mysrc[34].c
             85950    83501 user3        myrepo.wc/mysrc3.c
             85950    83501 user3        myrepo.wc/mysrc4.c
--<

Is this a known problem? Could it be server-related? IOW, should I try to upgrade
the server to 1.10?

This is a simple oneliner to find affected files:

$ svn status --verbose --ignore-externals myrepo.wc/ | gawk '{ FIELDWIDTHS = "1 1 1 1 1 1 1 1 1 1 8 1 8 1 5000"; if ($13 > $11) print $11 " " $13 " " $15 }'

Let me know if there is anything I should try or if you need more details.

Franz


Reply via email to