2010-12-03 138 views
4

私たちのSVNリポジトリは0.5 GBに近づいています。我々の生産システムには、この程度の量のコードはありません。古いSVNリビジョンを削除するには

古いリビジョンを削除することは可能ですか?私はsvn dumpに改訂番号を付けてみましたが、無駄です。私はそれをクリーンなSVNリポジトリにインポートできませんでした。

1年以上の履歴は必要ありません。

アイデア?

+4

大きなハードディスクを購入することを検討しましたか?最近のほとんどの企業にとって、1 **テラバイト**のディスクは手頃な価格です。 –

+1

これを読んでくださいhttp://stackoverflow.com/questions/681279/whats-the-best-way-to-clean-up-a-subversion-repository – Ish

+1

これについてはわかりませんが、 HEADファイルが実際に何であるか把握するためにすべての回転を実行するには? @マーク:通常、すべてのコストは少なくとも2倍または3倍です。冗長性が必要な場合は、バックアップ領域のコストです。 –

答えて

12

あなたのSVNリポジトリの履歴を削除したり、よりよく縮小したりすることができます。あなたが1000のリビジョンを持っていて、r950-r10​​00からのリビジョンだけを持つように縮小したいとします。あなたは、次の操作を行うことができます。

svnadmin dump /path/to/current/repo -r950:1000 > small_svn.dump 
svnadmin create /path/to/new/repo 
svnadmin load /path/to/new/repo < small_svn.dump 

はしかし、参照するには、2つの注意点があります

第一

すべてのタグとブランチは、スタンドアロンコピーとしてなってしまいますので、前よりもはるかに多くのスペースを取ります(これはもっと大きなリポジトリで終わるかもしれませんが、試してみる必要があります) - タグやブランチを削除するにはsvndumpfilterを使うことができます。

第二:(。原因PTに1)あなたの枝があなたの新しいリポジトリに滞在する場合、あなたの新しいリポジトリが再び改訂0で開始し、また、すべての枝がバージョン履歴になくなっているようは、すべてのmergeinfoが間違ったリビジョンを表示します

Aはるかに優れたソリューション:

  • リポジトリの成長を担当しているリビジョン(複数可)を検索し(通常は下に位置し、リポジトリデータ格納に大きなファイルを検索する:/パス/に/レポ/ DB /回転数/ [0 ... X])。
  • これらのリビジョンのログ履歴を確認し、責任を負うファイルを探します。
  • これらのファイルが不要な場合は、svndumpfilterで削除してください。
  • 不要な大きなファイルのコミットを避ける方法を教えてください。

そうしないと、数週間後に再度リポジトリを縮小する必要があります。

0

あなたのビジネスは、より大きなディスクを購入したり、物を動かしたりするのではなく、時間を無駄にすることができますか? 1TBのコストは、ディスクを移動してスワップするのに必要な時間を加えた1〜2時間に相当します。

+2

私は毎晩それをバックアップしたかった – Wes

+0

@Wes:366 * 0.5ギグ<1テラバイト。 –

+5

まず、ディスクのコストはディスクのコストをはるかに上回ります。リモートホスティング。第二に、私は彼らが本に£30を支払うように奮闘する。帯域幅も無料ではないし、毎回2ギガバイトを転送する時間も簡単ではない。ああ、成長率は狂っている。私たちは最初の年に仕事のほとんどをやっていましたが、レポのサイズは1年後に80メガバイトでした。 – Wes

関連する問題