またまた前の更新から1年以上あいてしまいました・・・
もうここの使い方もうろ覚えなレベルですw
会社でファイルのバージョン管理にTortoiseSVNというのを使っているんですが、
一時的に自分のPCとは別の環境にチェックアウトして使いたい事が出てきまして、
しかし普通にやると3Dのモデルデータやアニメーションデータや画像データが一緒に落ちてきちゃうわけです。
それだと無駄に時間もかかるし、ファイルサイズもなかなかな量になってしまうので、
今回その中で使いたかった画像ファイル(png)だけを階層構造を保ったままチェックアウトする方法を調べました。
まずこれをやるためにはTortoiseSVNのコマンドラインクライアントをインストールしておく必要があります。
そちらに関してはこちらのサイトを御覧ください。
=====================================================
最初はチェックアウトしたいファイルのリストアップ
○SVNのファイル一覧を取得する。そのままだとコマンドプロンプトに収まりきらないのでテキストに出力
(赤文字部分はコマンドプロンプトに打つ文字です)
svn list リポジトリURL >log.txt
○おそらくそのテキストファイルがC:\Users\ユーザー名などに出力されているので
そのファイルからさらに検索したい文字列を抜き出して別のテキストに出力
find "検索したい文字列(ファイル名)" ファイル名とパス >log2.txt
例>> find ".png" C:\Users\ユーザー名\log.txt >log2.txt
○出力されたテキスト内に書かれているリポジトリからのパスとファイル名の頭に
更新用のコマンド『svn up --depth=files 』を付け足す。
秀丸の場合は置換で 検索窓に「^(キャレット)」 を入れて、
秀丸の場合は置換で 検索窓に「^(キャレット)」 を入れて、
置換窓に「svn up --depth=files 」を入れると各行の先頭に付け足せる。
それを行った後そのテキストファイルの形式をbatファイルにする。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
次にフォルダ側の準備
○出力したい場所に空のフォルダを作り、コマンドラインから
svn checkout(co) --depth=empty 「リポジトリURL」 「チェックアウトをするパス」
で空のチェックアウトを行う
○そのフォルダ内に更新するものと同じフォルダ階層を空のフォルダで作っていく。
手作業でもいいし、「特定のリビジョンへ更新」から更新の深さを「直接の子階層」でもいける
それを行った後そのテキストファイルの形式をbatファイルにする。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
次にフォルダ側の準備
○出力したい場所に空のフォルダを作り、コマンドラインから
svn checkout(co) --depth=empty 「リポジトリURL」 「チェックアウトをするパス」
で空のチェックアウトを行う
○そのフォルダ内に更新するものと同じフォルダ階層を空のフォルダで作っていく。
手作業でもいいし、「特定のリビジョンへ更新」から更新の深さを「直接の子階層」でもいける
(後者は他のファイルもくる可能性がある)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
以上、2つの準備が終わったら、作ったbatファイルを空のチェックアウトを行ったフォルダ直下に置くか、
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
以上、2つの準備が終わったら、作ったbatファイルを空のチェックアウトを行ったフォルダ直下に置くか、
もしくはbatファイルを編集して、1行目に
cd /d チェックアウトをするパス
を加筆するかして、batを叩くすることでディレクトリを変更してからそれ以下が実行をチェックアウトしていく。
を加筆するかして、batを叩くすることでディレクトリを変更してからそれ以下が実行をチェックアウトしていく。
以上で欲しいファイルだけチェックアウトできると思います。
***********************************************
フォルダ側の準備についてはこちらのサイト様を参考にしました。
コメントをお書きください