必要なツールの開発 (その2)
XNAにてプログラムを開発する際に複数人数で開発を行う場合、Visual C#の場合はMicrosoftのソフトウェアということもあり、Visual Source Safeを使うのが一般的ですが、今回の開発のように可能な限りフリーウェアで開発を行う場合はSubversionのようなフリーウェアのソース管理を用いるケースがあります。
この場合、ソースやリポジトリ情報をインターネット上のサーバーに置いておき、ネット環境さえあればどこからでもアクセスが行え、ソースの修正もどこからも可能となります。
このように便利なソース管理ソフトですが、ソースのバックアップを「このソフトの管理情報を除いて保管しておきたい…」となった場合、管理ソフト用のディレクトリがプロジェクト内のディレクトリ全てに作成され、それが深い階層の部分にも沢山できてしまう…ということになります。
(特にSubversionのようなソフトウェアの場合、更新履歴を保管するので、管理ディレクトリ内のサイズが膨大になります)
Subversionの場合は「svn export」でファイルを持ってくれば良いのですが、たまにリポジトリの管理情報ごと持ってこられて、「えぇ~。管理情報が各ディレクトリの下にできちゃってるよ~」となったりした事があります。
その場合はバッチファイルでこの情報等を削除したいのですが、以下の条件をSubversionのケースを例に取って考えてみると、バッチファイルで実現すると結構大変になります。
1.あるディレクトリ以下の階層下にある"*.svn"のディレクトリを削除する。
2.「1.」に該当したディレクトリの階層下のファイル、ディレクトリは"*.svn"に関係無く
全てのファイル、ディレクトリを削除する。
DELコマンドや、cygwin等を導入して、rmコマンドを導入しても、この表現を1行で行なえるようなバッチ(またはシェル)の記述は結構大変と思ったので(特に指定のディレクトリのワイルドカード以下を全てというのが)、「無ければ自分色で作る」といういつもの精神と、ついでにC#のお勉強という意味(←こっちの方が意味合いは強い)で、コマンドを作ってみました。
その名も、
「DelEx.exe」
とても安易なネーミングですw
使い方はDELコマンドに近い感じで作ってみました。
DelEx /?
にて使用法が表示されます。
使用例は以下のような感じでバッチコマンドに記述して、ファイルの削除を行います。
◇ ◇ ◇
本当はもっと良い削除方法があるとは思ったのですが、「プログラミング学習になるのなら、それもまた良し」ということと、サクッと作れるのであれば、「自作した方が楽しい」ということで作成しました。
ファイルの削除を行うAPIを実行するプログラミングというのは一歩間違えると悲惨なことになりかねないので、緊張感があってとても楽しいです(^^;
(UNIXで管理者権限のある人がパンチミスでルートディレクトリから再帰削除を実行するという、ありがちなミスを行ったというのは良く聴く話ですね)
とりあえずXFileTrimPath同様にソースは公開しますが、コンパイルは御自分でお願いするとともに、実行に関する責任は一切負わないものとさせていただきます。
【ソースファイル】
2008.03.14 DelEx.zip
この場合、ソースやリポジトリ情報をインターネット上のサーバーに置いておき、ネット環境さえあればどこからでもアクセスが行え、ソースの修正もどこからも可能となります。
このように便利なソース管理ソフトですが、ソースのバックアップを「このソフトの管理情報を除いて保管しておきたい…」となった場合、管理ソフト用のディレクトリがプロジェクト内のディレクトリ全てに作成され、それが深い階層の部分にも沢山できてしまう…ということになります。
(特にSubversionのようなソフトウェアの場合、更新履歴を保管するので、管理ディレクトリ内のサイズが膨大になります)
Subversionの場合は「svn export」でファイルを持ってくれば良いのですが、たまにリポジトリの管理情報ごと持ってこられて、「えぇ~。管理情報が各ディレクトリの下にできちゃってるよ~」となったりした事があります。
その場合はバッチファイルでこの情報等を削除したいのですが、以下の条件をSubversionのケースを例に取って考えてみると、バッチファイルで実現すると結構大変になります。
1.あるディレクトリ以下の階層下にある"*.svn"のディレクトリを削除する。
2.「1.」に該当したディレクトリの階層下のファイル、ディレクトリは"*.svn"に関係無く
全てのファイル、ディレクトリを削除する。
DELコマンドや、cygwin等を導入して、rmコマンドを導入しても、この表現を1行で行なえるようなバッチ(またはシェル)の記述は結構大変と思ったので(特に指定のディレクトリのワイルドカード以下を全てというのが)、「無ければ自分色で作る」といういつもの精神と、ついでにC#のお勉強という意味(←こっちの方が意味合いは強い)で、コマンドを作ってみました。
その名も、
「DelEx.exe」
とても安易なネーミングですw
使い方はDELコマンドに近い感じで作ってみました。
DelEx /?
にて使用法が表示されます。
[DelEx] ファイルを削除します。 DelEx [/S] [/Q] [/F] [/L] ファイル名 /S 指定のファイルのパスから下の階層も検索対象とします。 /Q ファイルを削除するときにメッセージを表示しません。 /F エラーが発生しても無視して強制的に処理を行います。 /L 削除するファイル一覧を表示します。(削除は行いません) |
使用例は以下のような感じでバッチコマンドに記述して、ファイルの削除を行います。
rem Gears下のSubversion情報を削除します DelEx.exe /S /Q Gears\*.svn |
◇ ◇ ◇
本当はもっと良い削除方法があるとは思ったのですが、「プログラミング学習になるのなら、それもまた良し」ということと、サクッと作れるのであれば、「自作した方が楽しい」ということで作成しました。
ファイルの削除を行うAPIを実行するプログラミングというのは一歩間違えると悲惨なことになりかねないので、緊張感があってとても楽しいです(^^;
(UNIXで管理者権限のある人がパンチミスでルートディレクトリから再帰削除を実行するという、ありがちなミスを行ったというのは良く聴く話ですね)
とりあえずXFileTrimPath同様にソースは公開しますが、コンパイルは御自分でお願いするとともに、実行に関する責任は一切負わないものとさせていただきます。
【ソースファイル】
2008.03.14 DelEx.zip
コメント
コメントの投稿
« Sample Action Gameの紹介 [ステージ16] l Home l 昔のゲームの想い出 [0028] 「バルトリック」 [ジャレコ] [1986] [アーケード] »