With a little gymnastics, you can get around this using svnsync , which has the ability to fix EOL. Say your repository is dumped in archive.svn .
First create a repository to download the repo back, ignoring EOL issues:
svnadmin create repo svnadmin load repo < archive.svn
Now create a new repository to copy:
svnadmin create repo-fixed
svnsync requires some pre-commit binding, even if you don't use it, so just use your editor to create an empty one in repo-fixed/hooks/pre-revprop-change :
#!/bin/sh exit 0
Initialize the destination repository for svnsync :
svnsync init file:///path/to/repo-fixed file:///path/to/repo
Now copy the entire repository:
svnsync sync file:///path/to/repo-fixed
Phew! svnsync will even give you good news: NOTE: Normalized svn:* properties to LF line endings (Why the Subversion team did not update svnadmin to do the same normalization is a mystery to me.)
After that, dump the new repository:
svnadmin dump repo-fixed > archive-fixed.svn
You now have archive-fixed.svn , which should be identical to archive.svn , except that EOLs have been fixed as needed.
(Optional) Now you can delete the temporary repository that you used for svnsync :
rm -rf repo-fixed
Refresh . It turns out that if you download this new dump, your Subversion client will receive an error message: Repository UUID does not match expected UUID . You will need to use svnadmin setuuid ... to change the UUID to what it used .
(This post is the culmination of many fragments and partial solutions that I found on the Internet. Thanks to all the people who knew more than me, I just put it all together.)
See also: