SVNリポジトリを復元する

むかしむかしのオフィスの1つで、すべてのプロジェクトに1つのリポジトリがありました。

svn svn://server/
some1
some2
some3


原則として、すべてが1つのデータベースに保存されるため、非常に便利でした。

しかし、問題に直面しました。 リポジトリを複数に分割することが決定された瞬間に、データベースが崩壊し始めた理由は明らかではありません。



そもそも、すべてのブレークポイントがあればそれを見つける必要がありました。

最初のギャップを見つける:
svnadmin dump --incremental -r0:HEAD c:\path\to\repo > test.dmp
私の場合、8600リビジョンのうち、最初のリビジョンがすぐに見つかりました... 2300番目のリビジョン。

次に、さらにポイントを見つけます。
svnadmin dump --incremental -r2301:HEAD c:\path\to\repo > test.dmp

別のものを得た。 3459。

そしてもっと見つけてください。
svnadmin dump --incremental -r3460:HEAD c:\path\to\repo > test.dmp

これ以上エラーは見つかりませんでした。

次に、ライブリビジョンのダンプを作成します。
s vnadmin dump --incremental -r0:2299 c:\path\to\repo > dump(0-2299).dmp
svnadmin dump --incremental -r2301:3458 c:\path\to\repo > dump(2301-3458).dmp
svnadmin dump --incremental -r3460:HEAD c:\path\to\repo > dump(3460-HEAD).dmp
vnadmin dump --incremental -r0:2299 c:\path\to\repo > dump(0-2299).dmp
svnadmin dump --incremental -r2301:3458 c:\path\to\repo > dump(2301-3458).dmp
svnadmin dump --incremental -r3460:HEAD c:\path\to\repo > dump(3460-HEAD).dmp


現在、リポジトリをプロジェクトに分割しています。

プロジェクト1:
svndumpfilter include /some < dump(0-2299).dmp > some-1.dmp
svndumpfilter include /some < dump(2301-3458).dmp > some-2.dmp
svndumpfilter include /some < dump(2301-3458).dmp > some-3.dmp


プロジェクト2:
svndumpfilter include /some2 < dump(0-2299).dmp > some2-1.dmp
svndumpfilter include /some2 < dump(2301-3458).dmp > some2-2.dmp
svndumpfilter include /some2 < dump(2301-3458).dmp > some2-3.dmp


類推により、3番目も同じです。

次に、最初のプロジェクトのリポジトリを作成します。
svnadmin create c:\path\to\some

ダンプをアンロードします。
svnadmin load c:\path\to\some < some-1.dmp
svnadmin load c:\path\to\some < some-2.dmp
svnadmin load c:\path\to\some < some-3.dmp


次のようなエラー:
1.ファイルは既に存在します
2.逆説的ではないので、ファイルはありません。

最初のケースでは、すべてが単純です。たとえば、「タートル」を使用してリポジトリに移動し、この干渉ファイルを削除します。

2番目のケースでは、ダンプでのスクリーニングを行う必要があります
svndumpfilter exclude /chto/ne/nawlos < some-1.dmp > some-11.dmp

そして、それをリポジトリにアップロードします。

それは基本的にそれです。

Source: https://habr.com/ru/post/J74044/


All Articles