lisz-works

プログラミングと興味を貴方に

SVNを別々のフォルダで一括チェックアウトするバッチファイル

【スポンサーリンク】

チェックアウトのイメージ

仕事で「SVNリポジトリ内の各フォルダを、別々のフォルダにチェックアウトしたい」

というというケースがありました。

そのときに作ったバッチファイルについてです。

やりたかったこと

リポジトリ内の各フォルダを、対応したローカルの各フォルダに別々にチェックアウトしたい。

チェックアウトのイメージ

でも手動でやるの面倒だから、一発で実行できるものがあると、今後が楽そうで幸せになりそう。

作ったものはこんな感じ

例えば「C:\work\projectX」に、設計書やソースのフォルダなどを用意し、それらに別々にチェックアウトしたいとします。

その場合、こんな感じで書きます。

cd C:\work\projectX
svn checkout file://169.254.0.10/xxxProject/Repository/trunk/基本設計書 基本設計書
svn checkout file://169.254.0.10/xxxProject/Repository/trunk/詳細設計書 詳細設計書
svn checkout file://169.254.0.10/xxxProject/Repository/trunk/ソース/アプリA ソース/アプリA
svn checkout file://169.254.0.10/xxxProject/Repository/trunk/ソース/アプリB ソース/アプリB

チェックアウト先のフォルダは、作られていなくても自動生成されます。

なんて便利なんだ……

ちなみにSVNのURLは、「file://」とか「svn://」とかから始まるヤツです。

リポジトリブラウザからコピってくると幸せになれる気がします。

チェックアウトコマンドについて

SVNのチェックアウトコマンドを使うことで、簡単にチェックアウトすることができます。

svn checkout <リポジトリのパス> <チェックアウトするフォルダ>

TortoiseSVNなどのGUIアプリを使ってもできますが、

ポチポチ操作して待って……
またポチポチ操作して待って……

と繰り返ししていると、面倒ですよね。

このバッチを作って叩けば、全てのチェックアウトが完了するまでフリーになれます。

どんなメリットが?

このバッチを作ってみて個人的に感じたメリットは、下記の通りです。

  1. バッチ実行中、SVN操作をしなくていいのでフリータイムになる
  2. 別のフォルダに同じ構成でチェックアウトしたいとき、cdのパス変えるだけなのでラクチン
  3. 他の人が同じことしたいとき、簡単に配布できる(あわよくば貰える)
  4. カスタムすれば、全然違うフォルダにチェックアウトなんてこともできる
  5. マウス操作せずにチェックアウトできる

下2つはもはやバッチよりコマンドプロンプトで叩いた方が速そうな気がしなくもないですが(笑)

あとがき

SVNでこのようなケースがある場合、是非お試し下さい。

1回で複数リポジトリをチェックアウトしないといけない場合にも有効だと思います。

関係ないけど個人的には、SVNよりgitを使いたい……