TortoiseSVN(Windows用Subversionクライアント)でプロジェクトフォルダをバージョン管理する手順をまとめたもの。
ソロ&ローカルでの利用を前提に書いているが、多人数&ネットワークでの利用でも基本は同じ。
セットアップ
TortoiseSVNのインストール
tortoisesvn.tigris.orgからTortoiseSVNのインストーラ(msi形式・32bit版)をダウンロードし、インストールする(手順は省略)。
インストール後、Windowsの再起動を要求してくる。*1
TortoiseSVNの日本語化
Windowsの再起動後、tortoisesvn.tigris.orgから日本語用のランゲージパック(exe形式・32bit版)をダウンロードし、インストールする(手順は省略)。
一緒に日本語マニュアル(PDF形式)もダウンロードしておくと良い。
以下の手順でTortoiseSVNを日本語化する。
- エクスプローラを起動し、任意のフォルダをマウス右クリックする
- コンテキストメニューから[TortoiseSVN‐Settings]を選択し、[TortoiseSVN Settings]ダイアログボックスを開く
- 左側のツリーペインから[General]を選択し、該当のページを開く
- [Language]で[日本語]を選択し、[OK]をクリックする
その他のツールのインストール(必要に応じて)
必要に応じて以下のようなツールをインストールし、[TortoiseSVN設定]の[外部プログラム]に登録する。
デフォルトでは同梱のTortoiseMergeが使われる。
すでに使い慣れたツールがあるなら設定を推奨。
- テキスト比較
- テキストマージ
TortoiseSVNのバージョンアップ
インストール先フォルダを変更しないなら、そのままTortoiseSVNを上書きインストールして構わない。
日本語ランゲージパックに関しても同様。
Subversionのインストール(必要に応じて)
コマンドライン版を使いたい場合はsubversion.tigris.orgからWindows版をダウンロード~インストールする(ソロ&ローカルでの利用ならインストールしなくても支障はない)。*2
バージョン管理
作業の流れ
基本的な作業は以下の通り。
- 新規のリポジトリを作成
- 初期状態のプロジェクトフォルダをインポート
- 任意の作業フォルダを作成し、リポジトリから最新版をチェックアウト
- 以降は、以下の作業を繰り返す
- プロジェクトフォルダ内のファイルを編集/追加/削除/コピー/移動
- 修正内容をコミットする(リポジトリに最新版を反映する)
以下の作業は任意で行う。
- タグ付け…ゲーム完成時、バグ修正完了時、バージョンアップ完了時など
- ブランチ…分岐時
- エクスポート…あるバージョンのファイルを入手したい時など
リポジトリの作成
リポジトリを作成する前に…
リポジトリ(変更履歴を管理しているファイル群でバージョン管理の中核)を作る際、悩みの種となるのは、
- 1つのリポジトリで1つのプロジェクトフォルダをバージョン管理する
- 1つのリポジトリで複数のプロジェクトフォルダをバージョン管理する
のどちらを選ぶか…だが、複数のゲーム制作を並行で進めることはまれだろうし、取り扱いが楽だと思う(多分)ので、ここでは前者を前提に説明する。
リポジトリを作成する
以下はリポジトリをC:\_svn\MyProjectフォルダとした場合の例である(以降、これを想定して説明する)。
それ以外のフォルダやドライブにした場合は、それに読み替えること。
- エクスプローラでC:\_svnフォルダを作成する
- 同様の手順で、C:\_svn\MyProjectフォルダを作成する(このフォルダをリポジトリとする)
- エクスプローラで、C:\_svn\MyProjectフォルダをマウス右クリックし、コンテキストメニューから[TortoiseSVN‐ここにリポジトリを作成]を選択する([リポジトリを作成]ダイアログボックスが開く)
- [Native filesystem(FSFS)]が選択されていることを確認し、[OK]をクリックする
- 「リポジトリの作成に成功しました」というメッセージボックスが開くので、[OK]をクリックして閉じる
リポジトリ内にtrunk、tags、branchesフォルダを作成
- エクスプローラでC:\_svn\MyProjectフォルダ(別に任意のフォルダでも構わない)をマウス右クリックし、コンテキストメニューから[TortoiseSVN‐リポジトリブラウザ]を選択する(リポジトリブラウザが起動する)
- フォルダツリーの file:///C:/_svn/MyProject をマウス右クリックし、コンテキストメニューから[フォルダを作成]を選択する
- Subversionにおいて、フォルダの区切り文字は / となる
- ローカルディスク上にリポジトリを作成すると、先頭に file:/// が付く
- [新しい名前]に trunk と入力し、[OK]をクリックする
- ログが表示されるので、[OK]をクリックして閉じる(trunkフォルダが作られる)
- 同様の手順で、tagsフォルダ、branchesフォルダを作成する
- tagsフォルダ、branchesフォルダはゲームが形になってから作っても構わない
- 最新の情報に更新する場合は、リポジトリブラウザ下部のヒントに従ってF5またはCtrl+F5を押すこと
- [OK]をクリックしてリポジトリブラウザを閉じる
それぞれのフォルダは慣例として以下のように使う。
- trunk
- 最新環境用で普段はこのフォルダにコミットする。ちなみにtrunkとは幹・幹線といった意味
- tags
- ゲームが完成したとき、バグフィックスしたときなど、ある「区切り」の状態をコミットしておくフォルダ
- branches
- ゲーム制作プロジェクトが枝分かれ(例えば通常版→完全版・豪華版へ…など)したときなどに利用するフォルダ
リポジトリへインポート
新規のプロジェクトフォルダを作成(通常の作業と同じ)
以下の例では、吉里吉里/KAGの解凍先はC:\kirikiri_kagフォルダ、新規のプロジェクトフォルダはC:\MyProjectフォルダであることを想定して書いている(以降、これを想定して説明する)。
それ以外のフォルダやドライブにしている場合は、それに読み替えること。
- エクスプローラで、C:\kirikiri_kag\kag3\templateフォルダをコピーし、C:\に貼り付ける
- C:\templateフォルダをC:\MyProjectフォルダにリネームする
- C:\MyProject\system\Config.~newをConfig.tjsにリネームする
- 各サブフォルダの ~このファイルは削除してかまいません~.txt を削除する
インポート
- エクスプローラで、C:\MyProjectフォルダをマウス右クリックし、コンテキストメニューから[TortoiseSVN‐インポート]を選択する(同名のダイアログボックスが開く)
- [リポジトリのURL]に file:///C:/_svn/MyProject/trunk と入力し、[OK]をクリックする
- 隣の[...]からリポジトリブラウザを開き、trunkフォルダを選択すると確実
- /trunkが付いていることに注意
- インポート処理結果が表示されるので、[OK]をクリックして閉じる
一旦、リポジトリにプロジェクトフォルダをインポートしたら、C:\MyProjectフォルダは用無しとなる。
リポジトリからチェックアウト
ここでは作業用フォルダ兼プロジェクトフォルダとしてC:\MyProjectフォルダを再利用する。
予め、エクスプローラで、C:\MyProjectフォルダ内のファイルを全て削除しておくこと。
- エクスプローラで、C:\MyProjectフォルダをマウス右クリックし、コンテキストメニューから[SVNチェックアウト]を選択する([チェックアウト]ダイアログボックスが開く)
- [リポジトリのURL]が file:///C:/_svn/MyProject/trunk であることを確認する
- [チェックアウトディレクトリ]が C:\MyProject であることを確認する
- [OK]をクリックする
- チェックアウト処理結果が表示されるので、[OK]をクリックして閉じる
チェックアウト後、ファイルやフォルダのアイコンが変わる(オーバーレイでチェックマークが表示される)ことに注意(TortoiseSVN設定で変更可能)。
また、管理用の隠しフォルダも作成される。
ファイルの編集/追加/削除/リネーム/コピー/移動
ファイルを編集
普段の作業と特に変わらず。
ファイルを追加
- ファイルを新規作成する(普段の作業と特に変わらず)
- エクスプローラで新規作成したファイルをマウス右クリックする
- コンテキストメニューから[TortoiseSVN‐追加]を選択する
ファイルを削除/リネーム
TortoiseSVNの削除/リネーム機能を使うこと。
通常の削除/リネームだと履歴に残らない。
- エクスプローラで対象のファイルをマウス右クリックする
- コンテキストメニューから[TortoiseSVN‐削除]または[TortoiseSVN‐名前を変更]を選択する
ファイルをコピー/移動
TortoiseSVNのコピー/移動機能を使うこと。
通常のコピー/移動だと履歴に残らない。
- エクスプローラで対象のファイルをマウス右クリックする
- コピー・移動先フォルダにドラッグ&ドロップする
- この時、コンテキストメニューから[SVNバージョン管理ファイルをここにコピーする]または[SVNバージョン管理ファイルをここに移動する]を選択する
リポジトリへコミット
- エクスプローラでC:\MyProjectフォルダをマウス右クリックする
- コンテキストメニューから[SVNコミット]を選択する
- [ログメッセージを入力]ダイアログボックスが開く
- [メッセージ]に変更内容を入力する
- [変更されたファイル]の内容が正しいか確認する(ゴミファイルをコミットしないよう注意)
- [OK]をクリックする
- コミット処理結果が表示されるので、[OK]をクリックして閉じる
リポジトリにコミットしてしまえば、いつでも最新の環境をチェックアウトできるので、作業用フォルダ兼プロジェクトフォルダ(C:\MyProject)は削除して構わない(エクスプローラから普通に削除でOK)。
あるいは、そのまま継続して使用しても良い。
任意で行う作業
差分
編集したファイル(まだコミットしていない)が、前回のコミットからどう変更されたかを調べることができる。
- 編集したファイル(赤の!アイコンになっているもの)をマウス右クリックする
- コンテキストメニューから[TortoiseSVN‐差分]を選択する
タグ付け
ゲームが完成したとき、バグフィックスしたときなどは、タグ付けしておくと、確実にその環境が取り出せるので便利である。
ここでは、バージョン1.0が完成したという想定でタグ付けの手順を説明する。*3
- エクスプローラでC:\MyProjectフォルダをマウス右クリックする
- コンテキストメニューから[TortoiseSVN‐分岐/タグ]を選択する
- [コピー(分岐/タグ)]ダイアログボックスが開く
- [先URL]に file:///C:/_svn/MyProject/tags/1.0 と入力する
- [ログメッセージ]にタグ付け理由などを入力する
- [OK]をクリックする
- タグ付け処理結果が表示されるので、[OK]をクリックして閉じる
- この時、警告音が鳴る
リポジトリからエクスポート
正規の環境を取り出したい場合は、エクスポートを使う。
ここではC:\Exportフォルダにエクスポートするという想定で説明する。
- エクスプローラでC:\Exportフォルダを作成する
- エクスプローラでC:\Exportフォルダをマウス右クリックし、コンテキストメニューから[TortoiseSVN‐エクスポート]を選択する
- [リポジトリのURL]に file:///C:/_svn/MyProject/trunk と入力する
- 隣の[...]からリポジトリブラウザを開き、trunkフォルダを選択すると確実
- 例えば、先ほどタグ付けしたバージョン1.0をエクスポートしたいなら file:///C:/_svn/MyProject/tags/1.0 と入力すれば良い
- [エクスポート先ディレクトリ]がC:\Exportであることを確認する
- [OK]をクリックする
- エクスポート処理結果が表示されるので、[OK]をクリックして閉じる
作業用フォルダ兼プロジェクトフォルダを使っても構わないが、エクスポートなら隠しフォルダや未登録のファイルなどは作られない。
次のプロジェクトをバージョン管理
- C:\_svn\MyProject2フォルダを作成し、このフォルダにリポジトリを作成する
- リポジトリブラウザでtrunk、tags、branchesフォルダを作成する
- このリポジトリで次のゲーム開発プロジェクトをバージョン管理する
以下、エンドレス。
リポジトリのバックアップ
リポジトリ(今回の例ではC:\_svn\MyProjectフォルダ)が破損すると、バージョン管理は全く機能しなくなる。
定期的にリポジトリをバックアップすることが望ましい。
- FSFSリポジトリでソロ&ローカルでの使用なら、エクスプローラのコピーやバックアップツールで充分
- 確実を期すなら、svnadmin dumpやsvnadmin hotcopyでリポジトリをバックアップすると良い
- TortoiseSVNにリポジトリのバックアップ機能はないので、別途、Windows版Subversionをインストールする必要がある
TIPS
不具合について
TortoiseSVNはまれに不具合を起こし、ファイルやフォルダの削除などを阻害することがある。このような場合は、Unlockerや強削などを使うと良い。
全.svnフォルダの削除
何らかの理由で作業用フォルダをコピーした際、.svnフォルダは邪魔になることが多い。以下のバッチファイルで.svnフォルダのみ削除できる(作業フォルダのコピーはC:\MyProject_copyと仮定している)。
set FOLDERS=C:\MyProject_copy for /r %FOLDERS% %%I in (.svn) do rd /s /q %%I
コマンドプロンプトから直接実行する場合は、以下のようになる。
for /r C:\MyProject_copy %I in (.svn) do rd /s /q %I
吉里吉里リリーサーについて
吉里吉里リリーサーは、作業用フォルダ兼プロジェクトフォルダ(今回の例ではC:\MyProject)も特に問題なくリリースできる。
この際、Subversionの隠しフォルダ(.svnフォルダ)は無視される。*4
吉里吉里/KAGのソースコードを入手
詳細はSubversionと吉里吉里関連のソースコードについてを参照のこと。
途中、警告なり署名なりのダイアログボックスが出てくるかも知れない(すでに失念)。
エクスポート
以下は吉里吉里2 version 2.28 rev.3 / KAG3 version 3.28 rev.3のソースコードをC:\kirikiri2.28rev3フォルダにエクスポートする手順である。
- エクスプローラでC:\kirikiri2.28rev3フォルダを作成する
- エクスプローラでC:\kirikiri2.28rev3フォルダをマウス右クリックし、コンテキストメニューから[TortoiseSVN‐エクスポート]を選択する
- [リポジトリのURL]に https://sv.kikyou.info/svn/kirikiri2/tags/2.28rev3 と入力し、[OK]をクリックする
- エクスポート処理結果が表示されるので、[OK]をクリックして閉じる
[リポジトリのURL]に https://sv.kikyou.info/svn/kirikiri2/tags と入力し、隣の[...]からリポジトリブラウザを起動すれば、任意のバージョンのソースコードを選択~エクスポートできる。
チェックアウト
以下は最新の開発版をC:\kirikiri2フォルダにチェックアウトする手順である。
- エクスプローラでC:\kirikiri2フォルダを作成する
- エクスプローラでC:\kirikiri2フォルダをマウス右クリックし、コンテキストメニューから[SVNチェックアウト]を選択する
- [リポジトリのURL]に https://sv.kikyou.info/svn/kirikiri2/trunk と入力し、[OK]をクリックする
- チェックアウト処理結果が表示されるので、[OK]をクリックして閉じる
以降、C:\kirikiri2フォルダでマウス右クリックし、コンテキストメニューから[SVN更新]を選択すれば、いつでも最新の開発版に更新できる。