« 市橋有里選手引退 | Main | 1つのコマンドを複数行で記述 »

2007.02.16

1リビジョン毎のsvnadmin load

 Subversionはコミット・フックスクリプトを利用して、1リビジョン毎のダンプファイルを簡単にかつ自動的に作成することができますが、その場合、リストアするときなどは1ファイルずつsvnadmin loadを行う必要が生じてしまいます。
 1つや2つ程度なら、手作業で1つずつ取り込んでもたいした手間ではありませんが、ファイル数が多くなってくると、非現実的な作業量に(笑)。

 で、コマンドプロンプトからFORを使用することで、サクッと一括処理が可能に。

  • カレントフォルダを基準に、dumpフォルダ内にdump[リビジョン番号].datファイルが格納されている
  • リストア先のリポジトリは、カレントフォルダを基準にreposフォルダである
  • 例えばリビジョン123から1024までを取り込む
  • svnadminにパスが通っている
    となっていた場合、
    FOR /L %I IN (123,1,1024) DO svnadmin load repos < dump\dump%I.dat

    で1つずつ順番にロード実行。
     取り込み対象の開始リビジョン番号、終了リビジョン番号をパラメータ化したバッチファイルを作成しておけば、再利用も容易(開始・終了番号を自動的に判別できれば理想的(何も考えずに実行するだけでOK)なのですが)。

     FOR文を使うことで、既にあるリポジトリの内容を1リビジョン単位でダンプ化することも容易ですね。ただ、最新リビジョンの番号は事前に調べておく必要がありますが。

    FOR /L %I IN (0,1,123) DO svnadmin dump --incremental -r %I:%I repos > dump\dump%I.dat

  • |

    « 市橋有里選手引退 | Main | 1つのコマンドを複数行で記述 »

    Subversion・Trac・etc.」カテゴリの記事

    Comments

    Post a comment



    (Not displayed with comment.)


    Comments are moderated, and will not appear on this weblog until the author has approved them.



    TrackBack


    Listed below are links to weblogs that reference 1リビジョン毎のsvnadmin load:

    « 市橋有里選手引退 | Main | 1つのコマンドを複数行で記述 »