2009-04-30 88 views
11

大きな(〜8GBの)svnリポジトリのバックアップダンプを取得する必要があります。現在の方法では、ファイルにsvnadmin dumpを使用し、7-Zipを使用してファイルを圧縮および分割します。Windowsコマンドプロンプトでデータをパイプする

> svnadmin dump c:\path\to\myrepo > c:\svndump.svn 
> 7z svndump.svn svndump.7z  // or whatever the correct syntax is 

がここに仲介人をスキップする方法である、とSVNダンプデータがパイプか何かを使って、一度に圧縮されるようになるだろうかと思いまして?これは可能ですか?構文は何でしょうか?

+3

賛成票への返信:OK、はい、直接関連するプログラミングではなく接線です。プラスそれは決定的で正式な答えを持っているので、私はそれがスタックオーバーフローに合っていると思う。 – nickf

+3

これはトピックです - プログラミング関連ツールの効果的な使用に関連しています – Alnitak

答えて

0

サンプルが正確に私が探していたものなので、これはすべてのリポジトリを「ダンプ」するための完全なソリューションとして行ったものです。 このソリューションは、すべてのsvnリポジトリを非圧縮中間ファイルなしで7-zipファイルにダンプします。

「バッチファイル」を「リポジトリルート」に入れます。 M:\リポジトリ\ダンプall.bat

pushd %~dp0 
SET SEVENZIP="c:\Program Files\7-Zip\7z.exe" a -mx1 -si 
FOR /f "tokens=*" %%i in ('DIR /a:d /b') DO svnadmin dump %%i | %SEVENZIP% ..\_svndump\%%i.dump.7z 

そして、あなたが優先順位の低い、工程(7Z +のsvnadmin)の両方でそれを実行する必要がある場合には、このようなそのバッチを起動するには、CPUの多くを取る

start /low m:\repositories\dump-all.bat 

メモ:「管理者として実行」を使用してエクスプローラから起動すると、「c:\ windows \ system32」で開始するのではなく、「現在のディレクトリ」をバッチファイルの場所に設定します。 。作業フォルダが別のドライブにある場合にも機能します。
"m:"と "cd \ repositories"を入力する必要はありません。あなたが "c:"ドライブから起動するとします。

関連する問題