Summary: 'svnadmin pack' can bring the repository to a state where
'svnadmin verify' fails.
I can reproduce it with the svn repository, I couldn't find how to
reproduce it in a Greek tree repository.
Reproduction script:
@echo off
cd \tmp\svn
echo @@@ Versions
svn --version | head -2
svnsync --version | head -2
svnadmin --version | head -2
echo @@@ Recreate the repository
rd/s/q r
svnadmin create r
touch r\hooks\pre-revprop-change.bat
echo @@@ Set small shards (so packing has an effect)
### Couldn't get perl to maintain EOL style.
vim -Nneu NONE -i NONE -b -c "set noreadonly | 2s/sharded 1000/sharded 4/ | wq!" r\db\format
echo @@@ Hack. Force the sync to abort after syncing r9.
mkdir r\db\revprops\2\10
echo @@@ Sync.
svnsync init file:///tmp/svn/r http://svn.collab.net/repos/svn
svnsync sync file:///tmp/svn/r
echo @@@ The above error was expected.
echo @@@ This will work:
svnadmin verify -r2 r
echo @@@ Packing...
svnadmin pack r
echo @@@ This will fail:
svnadmin verify -r2 r
Output:
@@@ Versions
svn, version 1.6.0 (dev build-r34949)
compiled Dec 27 2008, 00:28:10
svnsync, version 1.6.0 (dev build-r34949)
compiled Dec 27 2008, 00:28:10
svnadmin, version 1.6.0 (dev build-r34949)
compiled Dec 27 2008, 00:28:10
### I actually used r34952; the output is wrong.
@@@ Recreate the repository
@@@ Set small shards (so packing has an effect)
@@@ Hack. Force the sync to abort after syncing r9.
@@@ Sync.
Copied properties for revision 0.
Transmitting file data .........................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
.........................................................
Committed revision 1.
Copied properties for revision 1.
Transmitting file data .
Committed revision 2.
Copied properties for revision 2.
Transmitting file data .
Committed revision 3.
Copied properties for revision 3.
Transmitting file data .
Committed revision 4.
Copied properties for revision 4.
Transmitting file data .
Committed revision 5.
Copied properties for revision 5.
Transmitting file data .
Committed revision 6.
Copied properties for revision 6.
Transmitting file data .
Committed revision 7.
Copied properties for revision 7.
Transmitting file data .
Committed revision 8.
Copied properties for revision 8.
Transmitting file data .
Committed revision 9.
Copied properties for revision 9.
Transmitting file data .
..\..\..\subversion\libsvn_subr\io.c:2900: (apr_err=720005)
svnsync: Can't move '\tmp\svn\r\db\transactions\9-9.txn\props' to '\tmp\svn\r\db\revprops\2\10': Access is denied.
@@@ The above error was expected.
@@@ This will work:
* Verified revision 2.
@@@ Packing...
@@@ This will fail:
..\..\..\subversion\libsvn_fs_fs\fs_fs.c:3695: (apr_err=160004)
svnadmin: Invalid changes line in rev-file
Daniel
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=993717
Received on 2008-12-27 15:37:49 CET