構造の悪いsvnリポジトリにブランチがあり、それを削除して別のsvnリポジトリに移動する必要があります。(私はそれをいくつかクリーンアップしようとしています)。
コピー/名前変更を停止svn log
せずに実行すると、気になる3427のコミットがすべて表示されます。いくつかの主要なスクリプトを書く以外に、リビジョンをダンプする方法はありますか?
私はこの質問のアドバイスに従いますが、このブランチはあちこちに移動されており、移動も保持したいと思います。
構造の悪いsvnリポジトリにブランチがあり、それを削除して別のsvnリポジトリに移動する必要があります。(私はそれをいくつかクリーンアップしようとしています)。
コピー/名前変更を停止svn log
せずに実行すると、気になる3427のコミットがすべて表示されます。いくつかの主要なスクリプトを書く以外に、リビジョンをダンプする方法はありますか?
私はこの質問のアドバイスに従いますが、このブランチはあちこちに移動されており、移動も保持したいと思います。
これは@ZacThompson(および@Pekka)の意味に似ていると思いsvndumpfilter
ます。あなたの友達だと思います。
あなたの質問から、あなたはそれが何を意味するのか考えていると思いますが、あちこちの枝のコピー/移動に苦労していますか?その答えは、前述のSVNドキュメントにあります。
また、コピーされたパスは問題を引き起こす可能性があります。Subversionは、リポジトリでのコピー操作をサポートしています。この場合、既存のパスをコピーすることで新しいパスが作成されます。リポジトリの存続期間中のある時点で、svndumpfilterが除外している場所から、含まれている場所にファイルまたはディレクトリをコピーした可能性があります。ダンプデータを自給自足にするために、svndumpfilterは、コピーによって作成されたファイルの内容を含む新しいパスの追加を表示する必要があり、その追加を、コピーによって存在しないソースからのコピーとして表さないようにする必要があります。フィルタリングされたダンプデータストリーム。ただし、Subversionリポジトリのダンプ形式には、各リビジョンで変更された内容のみが表示されるため、コピーソースの内容をすぐに利用できない場合があります。
意味:ブランチがこれまでに住んでいたすべてのsvndumpfilter
パスを含めるようにします。それとも私は何かが足りないのですか?
もう1つの可能性は、svndumpfilter2
リンクしたスレッドで@compieが言及している可能性がありますが、それは必要ではないと思います(@compieまたはのどちらもわかりませんsvndumpfilter2
)。
次の組み合わせを使用することをお勧めします。
ブランチ全体を実行したい場合は、svndumpfilterさえ必要ないかもしれません。しかし、あなたがそうするなら:
http://svnbook.red-bean.com/nightly/en/svn.reposadmin.maint.html#svn.reposadmin.maint.filtering
非常に単純で、 「動きを維持する」問題を解決する別の解決策があります。Apache Subversion FAQエントリの最後の段落「リポジトリの履歴からファイルを完全に削除するにはどうすればよいですか?」を参照してください。。ソリューションはに依存しませんsvndumpfilter
。
次の手順を実行できます。
パスベースの承認ルールを構成して、リポジトリ履歴から削除するファイルまたはフォルダーのPATHSへのUSERNAMEアカウントの読み取りアクセスを拒否します。
複数名詞のパスに注意してください。削除するファイルまたはフォルダーは、名前が異なる場合や、リポジトリ履歴全体の異なる場所にある場合があります。拒否ルールを設定するときは、これを考慮してください。
空のリポジトリを作成し、
svnsync
ツールを使用してソースリポジトリをアカウントUSERNAMEのターゲットリポジトリに複製します。とのリポジトリ同期の詳細については、SVNBookの「リポジトリレプリケーション」svnsync
の章を参照してください。
とは異なりsvndumpfilter
、読み取り不可能なソースパスを持つ操作を通常の追加にsvnsync
自動的に変換svn copy
します。これは、履歴にコピー操作が含まれ、それでもフィルタリングが必要な場合に役立ちます。:)
HotCopyを使用してリポジトリディレクトリをバックアップする必要があります。次に、リポジトリを単に復元するだけの問題である必要があります。