2009-07-10 15 views
11

私は単独で働いているプロジェクトにTortoise SVNを使用しています。私は自分のリポジトリ(VC++ Intellisenseデータベース)に膨大なファイルをコミットしました。今私は自分のリポジトリからバックアップを容易にするためにこのファイルを削除したいと思います。私のSVNリポジトリからファイルを完全に削除することは可能ですか?

私のプロジェクトからファイルを削除し、そのファイルの以前のバージョンがリポジトリに残っているので、私の問題は解決しません(明らかに)。新しいリポジトリの作成を伴わないこの問題を解決する方法はありますか?


EDIT

@ryansstackソリューションは完全に働いた、それは私がやったことです(私は私のリポジトリが置かれたディレクトリでコマンドを実行):

まず、私はダンプを作成followiその後

svnadmin dump tcc | svndumpfilter exclude "/trunk/Image Segmentation/Image Segmentation.ncb" > tcc.bak 

私は新しいリポジトリ(TCC2)を作成し、実行しました:巨大なファイルには、私のリポジトリのフィルタリングngコマンド:

svnadmin load tcc2 < tcc.bak 

ここで、tcc2のダンプサイズは7 MBで、170 MBのtccです。

+0

Dupe http:// stackoverflow。com/questions/663584/subversion-permanently-remove-in-directory-project/663595#663595 http://stackoverflow.com/questions/560684/svn-obliterate –

答えて

2

私が知る限り、ファイルがsvnでコミットされると、それを元に戻すためのsvnの機能はありません。ディレクトリからファイルを削除してディレクトリをコミットすることはできますが、ファイルがディレクトリの最新のリビジョンに含まれなくなるだけです。コミットされたリビジョンはまだそこにあります。通常、私はそれが良いことを見つけますが、あまり望ましくないかもしれないケース(あなたのようなもの)があります。

-1

があります。私のSVNサーバーの管理者は、これはできないと私に伝えます。あなたが行うことができる唯一の方法は、新しいリポジトリを起動し、古いものをディスクなどにアーカイブすることです。

ファイルespに変更を加えないでください。それがバイナリファイルならば、私はSVNが複数のコピーを保存していると信じているからです。

+0

SVNはバイナリファイルの差分を表示します。 –

2

私は同様のことをやってみましたが、基本的にはSubversionが設定されているので、単純にそのようなものを削除することはできません。

しかし、既にデータベースをバックアップしているので、check this outである必要があります。私がやったことは、リポジトリをダンプし、それをフィルタリングし、それを新しいリポジトリにロードすることでした。もちろん、私は既にダンプ/フィルタ/ロードサイクルを他の理由で行っていたので、少しの追加のフィルタリングではあまり効果がありませんでした。すでにバックアップを行っている場合、現在のリポジトリをバックアップすることができます(ダンプを実行していると仮定します)。svndumpfilterを使用して特定のリビジョンをフィルタリングし、バックアップからリロードします。

編集:ティグリスは正式にissue 516を持っています。 "svn obliterate"コマンドは計画されていますが、まだ実装されていません。

-1

コミットされたファイルをsvnから元に戻すことはできません。

関連する問題