2011-12-22 31 views
4

私はsvndumpfilterから奇妙な結果を得ています - 私は、複数のブランチの中に散在している私たちのレポの2つの特定のファイルの24のインスタンスを消滅させる必要があります。私は次のようにコマンドを実行しています。svndumpfilterの問題は、パスを除外しない

type dumpfile | svndumpfilter exclude foo1/bar.dat foo2/bar.dat > filtered_dumpfile 

しかし、それを濾過し、ダンプファイルが期待通りにすべてのノードを削除するだけで私は2つのダンプ・ファイルにsvndumptoolの差分を使用し、レポに除外されたファイルを再構築した後、これを確認している2の除去されていないようですまだ存在している。

私はsvnlookツリーを使ってリポジトリ内のすべてのパスを見つけたので、それらのファイルのインスタンスを見逃していないと確信しています。また、コマンドとダンプファイルで先行するスラッシュが一貫していることを確認しました。

誰もが考えている?

+0

私は同じ問題を抱えています。 http://svnbook.red-bean.com/en/1.7/svn.ref.svndumpfilter.commands.c.exclude.htmlの指示に従って、これは私のレポから4つのフォルダを削除するはずですが、まだそこにあります。ファイル名にスペースが含まれているので引用符の問題であると思っていました。先頭のスラッシュもチェックしました。 – Mnebuerquo

+0

あなたが助けてくれれば、回答を受け入れることができます。ありがとう! – bahrep

答えて

0

あなたは多分それは助ける、次のようにやろうとすることができる。

type dumpfile | svndumpfilter exclude foo1/bar.dat | svndumpfilter exclude foo2/bar.dat > filtered_dumpfile 

または、このように:

質問に関連している
svndumpfilter exclude `cat filterlist.txt` <old.dump> new.dump 
2

Apache Subversion FAQ entryは最近、新しいアプローチで更新されましたリポジトリの履歴をフィルタリングすることができます。複雑なリポジトリ履歴のフィルタリングは、svndumpfilterのアプローチよりもずっと便利です。

あなたはがリポジトリ履歴から除外される必要がある任意のパスに読み取りアクセスを拒否path-based authorization rulesを設定した後svnsyncツールを使用してリポジトリを複製することができます。

svndumpfilterとは異なり、svnsyncは、読取り不可能なソースパスを持つコピー操作を通常の追加に自動的に変換します。これは、コピー操作を含む履歴をフィルタリングする必要がある場合に便利です。

0

あなたはファイル内のすべてのプレフィックスを追加して、代わりに別の除外の--targets FILEオプションを使用することができます|私は歴史の中で最後にチェックインした抹消するために必要な

0

私のファイルが含まれています。だから、私はsvnadmin dumpを使って、壊れたrevより前のすべてのrevのダンプを取得することができました。

これは、このページに記載されているものと類似している:私はREV 8195でのミスのチェックインを取り除くために必要なhttp://robmayhew.com/delete-parts-of-subversion-history/

、私はこのような何か走った:これは働いていた

svnadmin dump /path/to/current/repo -r0:8194 > svn.dump 
svnadmin create /path/to/new/repo 
svnadmin load /path/to/new/repo < svn.dump 

を、チェックアウトされた作業コピーには8195の情報が残っていました。これは、私の作業コピーのバージョンがサーバーに存在しないと考えていたため、更新しようとするとエラーが発生しました。

リポジトリのバージョンを8195に戻すためにミニ・チェックアウトを行い、ちょっとした変更をチェックしなければならなかったので、悪いチェックインの影響を受けたファイルを削除した後、これはLinuxでsvnを使って動作しました。

同僚はWindowsでsvnを使用していますが、Tortoise svnはこのリポジトリ修正について実際には難しかったです。どうやらそれは最新のリビジョンの内部キャッシュを保持していて、作業コピーを更新すると、キャッシュから "悪い"リビジョンファイルを復元します。私はすべてをもう一度チェックして、それを正しくするために新しい作業コピーを作る必要があると思う。