6

構造の悪いsvnリポジトリにブランチがあり、それを削除して別のsvnリポジトリに移動する必要があります。(私はそれをいくつかクリーンアップしようとしています)。

コピー/名前変更を停止svn logせずに実行すると、気になる3427のコミットがすべて表示されます。いくつかの主要なスクリプトを書く以外に、リビジョンをダンプする方法はありますか?

私はこの質問のアドバイスに従いますが、このブランチはあちこちに移動されており、移動も保持したいと思います。

4

4 に答える 4

2

これは@ZacThompson(および@Pekka)の意味に似ていると思いsvndumpfilterます。あなたの友達だと思います。

あなたの質問から、あなたはそれが何を意味するのか考えていると思いますが、あちこちの枝のコピー/移動に苦労していますか?その答えは、前述のSVNドキュメントにあります。

また、コピーされたパスは問題を引き起こす可能性があります。Subversionは、リポジトリでのコピー操作をサポートしています。この場合、既存のパスをコピーすることで新しいパスが作成されます。リポジトリの存続期間中のある時点で、svndumpfilterが除外している場所から、含まれている場所にファイルまたはディレクトリをコピーした可能性があります。ダンプデータを自給自足にするために、svndumpfilterは、コピーによって作成されたファイルの内容を含む新しいパスの追加を表示する必要があり、その追加を、コピーによって存在しないソースからのコピーとして表さないようにする必要があります。フィルタリングされたダンプデータストリーム。ただし、Subversionリポジトリのダンプ形式には、各リビジョンで変更された内容のみが表示されるため、コピーソースの内容をすぐに利用できない場合があります。

意味:ブランチがこれまでに住んでいたすべてのsvndumpfilterパスを含めるようにします。それとも私は何かが足りないのですか?

もう1つの可能性は、svndumpfilter2リンクしたスレッドで@compieが言及している可能性がありますが、それは必要ではないと思います(@compieまたはのどちらもわかりませんsvndumpfilter2)。

于 2010-03-30T06:09:22.293 に答える
1

次の組み合わせを使用することをお勧めします。

  1. svnadminダンプ
  2. svndumpfilter
  3. svnadminロード

ブランチ全体を実行したい場合は、svndumpfilterさえ必要ないかもしれません。しかし、あなたがそうするなら:

http://svnbook.red-bean.com/nightly/en/svn.reposadmin.maint.html#svn.reposadmin.maint.filtering

于 2010-03-30T01:41:28.387 に答える
0

非常に単純で、 「動きを維持する」問題を解決する別の解決策があります。Apache Subversion FAQエントリの最後の段落「リポジトリの履歴からファイルを完全に削除するにはどうすればよいですか?」を参照してください。。ソリューションはに依存しませんsvndumpfilter

次の手順を実行できます。

  1. パスベースの承認ルールを構成して、リポジトリ履歴から削除するファイルまたはフォルダーのPATHSへのUSERNAMEアカウントの読み取りアクセスを拒否します。

    複数名詞のパスに注意してください。削除するファイルまたはフォルダーは、名前が異なる場合や、リポジトリ履歴全体の異なる場所にある場合があります。拒否ルールを設定するときは、これを考慮してください。

  2. 空のリポジトリを作成し、

  3. svnsyncツールを使用してソースリポジトリをアカウントUSERNAMEのターゲットリポジトリに複製します。とのリポジトリ同期の詳細については、SVNBookの「リポジトリレプリケーション」svnsyncの章を参照してください。

とは異なりsvndumpfilter、読み取り不可能なソースパスを持つ操作を通常の追加にsvnsync自動的に変換svn copyします。これは、履歴にコピー操作が含まれ、それでもフィルタリングが必要な場合に役立ちます。:)

于 2012-12-05T10:38:03.643 に答える
-2

HotCopyを使用してリポジトリディレクトリをバックアップする必要があります。次に、リポジトリを単に復元するだけの問題である必要があります。

于 2010-03-29T19:36:07.593 に答える