svnsyncちょっとした体操で、EOL を修正する機能を持つ を使用して、これを回避できます。リポジトリが にダンプされたとしましょうarchive.svn。
最初に、EOL の問題を無視して、レポジトリを再度ロードするためのレポジトリを作成します。
svnadmin create repo
svnadmin load repo < archive.svn --bypass-prop-validation
次に、コピー先の新しいリポジトリを作成します。
svnadmin create repo-fixed
svnsync使用しない場合でも、いくつかの pre-commit フックが必要なので、エディターを使用して に空のものを作成してくださいrepo-fixed/hooks/pre-revprop-change:
#!/bin/sh
exit 0
の宛先リポジトリを初期化しますsvnsync:
svnsync init file:///path/to/repo-fixed file:///path/to/repo
次に、リポジトリ全体をコピーします。
svnsync sync file:///path/to/repo-fixed
うわー!svnsync良いニュースさえあります: NOTE: Normalized svn:* properties to LF line endings(Subversion チームが同じ正規化を行うように更新しなかった理由はsvnadmin、私には謎です。)
それが完了したら、新しいリポジトリをダンプします。
svnadmin dump repo-fixed > archive-fixed.svn
これは、必要に応じて EOL が修正されていることを除いて、archive-fixed.svnと同じはずです。archive.svn
(オプション) に使用した一時リポジトリを削除できるようになりましたsvnsync。
rm -rf repo-fixed
更新この新しいダンプをロードすると、Subversion クライアントでエラーが発生することが判明しました:Repository UUID does not match expected UUID. を使用svnadmin setuuid ...して、UUID ID を以前のものに変更する必要があります。
(この投稿は、Web で見つけた多数のスニペットと部分的な解決策の集大成です。私よりも多くのことを知っていたすべての人々に感謝します。すべてをまとめただけです。)
以下も参照してください。