svnsvnadminsvndumpsvndumpfiltersvn-administraton

Loading svndumpfilter-ed SVN Dump - "svnadmin: E200003: Delta source ended unexpectedly"


I'm migrating a legacy SVN repository to GitHub, and to remain within the GitHub file size limits I've created a replica of the SVN repository with larger files (that shouldn't really have been in source control anyway) filtered out using svndumpfilter.

This has worked well, but I've found an additional file I've missed - when I filter out this file and load the resultant dump I get svnadmin: E200003: Delta source ended unexpectedly.

This is on Ubuntu, but I get the same error using VisualSVN on Windows, even after doing the dump / filter there as well.

The command I'm using is:

svnrdump dump https://my/svn/repo/ | svndumpfilter exclude --pattern "**/gigantic.sql" | svnadmin load repo

And the detailed output is:

<<< Started new transaction, based on original revision 19826
 * editing path : path/to/apples.sql ... done.
 * editing path : path/to/pears.sql ...svnadmin: E200003: Delta source ended unexpectedly

When I look at r19826 in the source repo, I can see that this was where gigantic.sql was deleted - but of course it's still in the intermediate history so needs to go.

I've tried adding the --drop-empty-revs and --preserve-revprops options but this hasn't helped (not that in hindsight I'd expect it to).

I've dropped lots of other parts of the history with no issue and migrated other repos, so I'm not sure why I'm stuck with this one?

Thanks.


Solution

    1. Make sure that you use up-to-date version of SVN command-line tools.
    2. Instead of svndumpfilter, try using svnadmin dump with the --exclude option. It's available beginning with version 1.10. Current version is 1.14.
    3. If possible, don't use remote svnrdump for this particular task. Use svnadmin dump with direct local access to the repository.

    PS Or keep using Subversion. It does not impose limits on file sizes.