[svk-devel] Error mirroring remote repository

Alan Barrett apb at cequrux.com
Sat Mar 13 11:29:05 EST 2010


On Thu, 11 Mar 2010, Chia-liang Kao wrote:
> I am pleased to announce SVK 2.2.2, a long-delayed maintenance release
  [...]
> This should work with svn 1.6's stricter filesystem transaction
> requirement which causes failures on svk mirror, and property-eol
> normalization required by svn.

I still get failures trying to mirror a remote repository.  The mirror
setup is like this:

$ svk mirror --list /myrepo/
Path                  Source
==================================================
/myrepo/mirror        svn+ssh://remotehost/remoterepo

Syncing up to revision 2454 works fine:

$ svk sync -t 2454 /myrepo/mirror
Syncing svn+ssh://remotehost/remoterepo
[nothing to do, since it was already synced]

Syncing revision 2455 fails like this:

$ svk sync -t 2455 /myrepo/mirror
Syncing svn+ssh://remotehost/remoterepo
Retrieving log information from 2455 to 2455
Transaction is out of date: '/mirror/project/trunk/somefile.sh' is out of date

Now, revision 2455 of the remote repo was a complex transaction
involving moving many files from the project/trunk directory to
project/trunk/subdir.  Here's an extract from svn log (this extract
shows only 4 files being moved into two subdirectories, but actually
there were nearly 150 files moved into 8 subdirectories).

$ svn log -v -r2455 svn+ssh://remotehost/remoterepo
------------------------------------------------------------------------
r2455 | AuthorName | 2008-11-07 11:10:51 +0200 (Fri, 07 Nov 2008) | 2 lines
Changed paths:
   D /project/trunk/anotherfile.txt
   D /project/trunk/somescript.py
   D /project/trunk/somefile.sh
   A /project/trunk/bin
   A /project/trunk/bin/somescript.py (from /project/trunk/somescript.py:2454)
   A /project/trunk/bin/somefile.sh (from /project/trunk/somefile.sh:2454)
   A /project/trunk/bin/perlscript.pl (from /project/trunk/perlscript.pl:2454)
   D /project/trunk/perlscript.pl
   A /project/trunk/etc
   A /project/trunk/etc/configfile (from /project/trunk/configfile:2454)
   D /project/trunk/configfile

Move most files from project root dir to bin, etc, and other subdirs.

------------------------------------------------------------------------

This particular revision in the remote repository was created via a
command like this:

    BRANCH="svn+ssh://remotehost/remoterepo/project/trunk"
    svnmucc -r2454 -m "Log message here" \
        mkdir $BRANCH/bin \
        mkdir $BRANCH/etc \
        move $BRANCH/configfile $BRANCH/etc/configfile \
        move $BRANCH/somescript.py $BRANCH/bin/somescript.py \
        move $BRANCH/perlscript.pl $BRANCH/bin/perlscript.pl \
        move $BRANCH/somefile.sh $BRANCH/bin/somefile.sh

It appears that some part of svk is confused by the way files were
copied and deleted in this revision.

--apb (Alan Barrett)


More information about the svk-devel mailing list