四方山話/吉里吉里/KAGでTortoiseSVNを使う

Last-modified: 2016-09-27 (火) 12:52:20

TortoiseSVN(Windows用Subversionクライアント)でプロジェクトフォルダをバージョン管理する手順をまとめたもの。
ソロ&ローカルでの利用を前提に書いているが、多人数&ネットワークでの利用でも基本は同じ。

セットアップ

TortoiseSVNのインストール

tortoisesvn.tigris.orgからTortoiseSVNのインストーラ(msi形式・32bit版)をダウンロードし、インストールする(手順は省略)。
インストール後、Windowsの再起動を要求してくる。*1

TortoiseSVNの日本語化

Windowsの再起動後、tortoisesvn.tigris.orgから日本語用のランゲージパック(exe形式・32bit版)をダウンロードし、インストールする(手順は省略)。
一緒に日本語マニュアル(PDF形式)もダウンロードしておくと良い。

以下の手順でTortoiseSVNを日本語化する。

  1. エクスプローラを起動し、任意のフォルダをマウス右クリックする
  2. コンテキストメニューから[TortoiseSVN‐Settings]を選択し、[TortoiseSVN Settings]ダイアログボックスを開く
  3. 左側のツリーペインから[General]を選択し、該当のページを開く
  4. [Language]で[日本語]を選択し、[OK]をクリックする

その他のツールのインストール(必要に応じて)

必要に応じて以下のようなツールをインストールし、[TortoiseSVN設定]の[外部プログラム]に登録する。
デフォルトでは同梱のTortoiseMergeが使われる。
すでに使い慣れたツールがあるなら設定を推奨。

TortoiseSVNのバージョンアップ

インストール先フォルダを変更しないなら、そのままTortoiseSVNを上書きインストールして構わない。
日本語ランゲージパックに関しても同様。

Subversionのインストール(必要に応じて)

コマンドライン版を使いたい場合はsubversion.tigris.orgからWindows版をダウンロード~インストールする(ソロ&ローカルでの利用ならインストールしなくても支障はない)。*2

バージョン管理

作業の流れ

基本的な作業は以下の通り。

  1. 新規のリポジトリを作成
  2. 初期状態のプロジェクトフォルダをインポート
  3. 任意の作業フォルダを作成し、リポジトリから最新版をチェックアウト
  4. 以降は、以下の作業を繰り返す
    1. プロジェクトフォルダ内のファイルを編集/追加/削除/コピー/移動
    2. 修正内容をコミットする(リポジトリに最新版を反映する)

以下の作業は任意で行う。

  • タグ付け…ゲーム完成時、バグ修正完了時、バージョンアップ完了時など
  • ブランチ…分岐時
  • エクスポート…あるバージョンのファイルを入手したい時など

リポジトリの作成

リポジトリを作成する前に…

リポジトリ(変更履歴を管理しているファイル群でバージョン管理の中核)を作る際、悩みの種となるのは、

  • 1つのリポジトリで1つのプロジェクトフォルダをバージョン管理する
  • 1つのリポジトリで複数のプロジェクトフォルダをバージョン管理する

のどちらを選ぶか…だが、複数のゲーム制作を並行で進めることはまれだろうし、取り扱いが楽だと思う(多分)ので、ここでは前者を前提に説明する。

リポジトリを作成する

以下はリポジトリをC:\_svn\MyProjectフォルダとした場合の例である(以降、これを想定して説明する)。
それ以外のフォルダやドライブにした場合は、それに読み替えること。

  1. エクスプローラでC:\_svnフォルダを作成する
  2. 同様の手順で、C:\_svn\MyProjectフォルダを作成する(このフォルダをリポジトリとする)
  3. エクスプローラで、C:\_svn\MyProjectフォルダをマウス右クリックし、コンテキストメニューから[TortoiseSVN‐ここにリポジトリを作成]を選択する([リポジトリを作成]ダイアログボックスが開く)
  4. [Native filesystem(FSFS)]が選択されていることを確認し、[OK]をクリックする
  5. 「リポジトリの作成に成功しました」というメッセージボックスが開くので、[OK]をクリックして閉じる

リポジトリ内にtrunk、tags、branchesフォルダを作成

  1. エクスプローラでC:\_svn\MyProjectフォルダ(別に任意のフォルダでも構わない)をマウス右クリックし、コンテキストメニューから[TortoiseSVN‐リポジトリブラウザ]を選択する(リポジトリブラウザが起動する)
  2. フォルダツリーの file:///C:/_svn/MyProject をマウス右クリックし、コンテキストメニューから[フォルダを作成]を選択する
    • Subversionにおいて、フォルダの区切り文字は / となる
    • ローカルディスク上にリポジトリを作成すると、先頭に file:/// が付く
  3. [新しい名前]に trunk と入力し、[OK]をクリックする
  4. ログが表示されるので、[OK]をクリックして閉じる(trunkフォルダが作られる)
  5. 同様の手順で、tagsフォルダ、branchesフォルダを作成する
    • tagsフォルダ、branchesフォルダはゲームが形になってから作っても構わない
    • 最新の情報に更新する場合は、リポジトリブラウザ下部のヒントに従ってF5またはCtrl+F5を押すこと
  6. [OK]をクリックしてリポジトリブラウザを閉じる

それぞれのフォルダは慣例として以下のように使う。

trunk
最新環境用で普段はこのフォルダにコミットする。ちなみにtrunkとは幹・幹線といった意味
tags
ゲームが完成したとき、バグフィックスしたときなど、ある「区切り」の状態をコミットしておくフォルダ
branches
ゲーム制作プロジェクトが枝分かれ(例えば通常版→完全版・豪華版へ…など)したときなどに利用するフォルダ

リポジトリへインポート

新規のプロジェクトフォルダを作成(通常の作業と同じ)

以下の例では、吉里吉里/KAGの解凍先はC:\kirikiri_kagフォルダ、新規のプロジェクトフォルダはC:\MyProjectフォルダであることを想定して書いている(以降、これを想定して説明する)。
それ以外のフォルダやドライブにしている場合は、それに読み替えること。

  1. エクスプローラで、C:\kirikiri_kag\kag3\templateフォルダをコピーし、C:\に貼り付ける
  2. C:\templateフォルダをC:\MyProjectフォルダにリネームする
  3. C:\MyProject\system\Config.~newをConfig.tjsにリネームする
  4. 各サブフォルダの ~このファイルは削除してかまいません~.txt を削除する

インポート

  1. エクスプローラで、C:\MyProjectフォルダをマウス右クリックし、コンテキストメニューから[TortoiseSVN‐インポート]を選択する(同名のダイアログボックスが開く)
  2. [リポジトリのURL]に file:///C:/_svn/MyProject/trunk と入力し、[OK]をクリックする
    • 隣の[...]からリポジトリブラウザを開き、trunkフォルダを選択すると確実
    • /trunkが付いていることに注意
  3. インポート処理結果が表示されるので、[OK]をクリックして閉じる

一旦、リポジトリにプロジェクトフォルダをインポートしたら、C:\MyProjectフォルダは用無しとなる。

リポジトリからチェックアウト

ここでは作業用フォルダ兼プロジェクトフォルダとしてC:\MyProjectフォルダを再利用する。
予め、エクスプローラで、C:\MyProjectフォルダ内のファイルを全て削除しておくこと。

  1. エクスプローラで、C:\MyProjectフォルダをマウス右クリックし、コンテキストメニューから[SVNチェックアウト]を選択する([チェックアウト]ダイアログボックスが開く)
  2. [リポジトリのURL]が file:///C:/_svn/MyProject/trunk であることを確認する
  3. [チェックアウトディレクトリ]が C:\MyProject であることを確認する
  4. [OK]をクリックする
  5. チェックアウト処理結果が表示されるので、[OK]をクリックして閉じる

チェックアウト後、ファイルやフォルダのアイコンが変わる(オーバーレイでチェックマークが表示される)ことに注意(TortoiseSVN設定で変更可能)。
また、管理用の隠しフォルダも作成される。

ファイルの編集/追加/削除/リネーム/コピー/移動

ファイルを編集

普段の作業と特に変わらず。

ファイルを追加

  1. ファイルを新規作成する(普段の作業と特に変わらず)
  2. エクスプローラで新規作成したファイルをマウス右クリックする
  3. コンテキストメニューから[TortoiseSVN‐追加]を選択する

ファイルを削除/リネーム

TortoiseSVNの削除/リネーム機能を使うこと。
通常の削除/リネームだと履歴に残らない。

  1. エクスプローラで対象のファイルをマウス右クリックする
  2. コンテキストメニューから[TortoiseSVN‐削除]または[TortoiseSVN‐名前を変更]を選択する

ファイルをコピー/移動

TortoiseSVNのコピー/移動機能を使うこと。
通常のコピー/移動だと履歴に残らない。

  1. エクスプローラで対象のファイルをマウス右クリックする
  2. コピー・移動先フォルダにドラッグ&ドロップする
  3. この時、コンテキストメニューから[SVNバージョン管理ファイルをここにコピーする]または[SVNバージョン管理ファイルをここに移動する]を選択する

リポジトリへコミット

  1. エクスプローラでC:\MyProjectフォルダをマウス右クリックする
  2. コンテキストメニューから[SVNコミット]を選択する
  3. [ログメッセージを入力]ダイアログボックスが開く
  4. [メッセージ]に変更内容を入力する
  5. [変更されたファイル]の内容が正しいか確認する(ゴミファイルをコミットしないよう注意)
  6. [OK]をクリックする
  7. コミット処理結果が表示されるので、[OK]をクリックして閉じる

リポジトリにコミットしてしまえば、いつでも最新の環境をチェックアウトできるので、作業用フォルダ兼プロジェクトフォルダ(C:\MyProject)は削除して構わない(エクスプローラから普通に削除でOK)。
あるいは、そのまま継続して使用しても良い。

任意で行う作業

差分

編集したファイル(まだコミットしていない)が、前回のコミットからどう変更されたかを調べることができる。

  1. 編集したファイル(赤の!アイコンになっているもの)をマウス右クリックする
  2. コンテキストメニューから[TortoiseSVN‐差分]を選択する

タグ付け

ゲームが完成したとき、バグフィックスしたときなどは、タグ付けしておくと、確実にその環境が取り出せるので便利である。
ここでは、バージョン1.0が完成したという想定でタグ付けの手順を説明する。*3

  1. エクスプローラでC:\MyProjectフォルダをマウス右クリックする
  2. コンテキストメニューから[TortoiseSVN‐分岐/タグ]を選択する
  3. [コピー(分岐/タグ)]ダイアログボックスが開く
  4. [先URL]に file:///C:/_svn/MyProject/tags/1.0 と入力する
  5. [ログメッセージ]にタグ付け理由などを入力する
  6. [OK]をクリックする
  7. タグ付け処理結果が表示されるので、[OK]をクリックして閉じる
    • この時、警告音が鳴る

リポジトリからエクスポート

正規の環境を取り出したい場合は、エクスポートを使う。
ここではC:\Exportフォルダにエクスポートするという想定で説明する。

  1. エクスプローラでC:\Exportフォルダを作成する
  2. エクスプローラでC:\Exportフォルダをマウス右クリックし、コンテキストメニューから[TortoiseSVN‐エクスポート]を選択する
  3. [リポジトリのURL]に file:///C:/_svn/MyProject/trunk と入力する
    • 隣の[...]からリポジトリブラウザを開き、trunkフォルダを選択すると確実
    • 例えば、先ほどタグ付けしたバージョン1.0をエクスポートしたいなら file:///C:/_svn/MyProject/tags/1.0 と入力すれば良い
  4. [エクスポート先ディレクトリ]がC:\Exportであることを確認する
  5. [OK]をクリックする
  6. エクスポート処理結果が表示されるので、[OK]をクリックして閉じる

作業用フォルダ兼プロジェクトフォルダを使っても構わないが、エクスポートなら隠しフォルダや未登録のファイルなどは作られない。

次のプロジェクトをバージョン管理

  1. C:\_svn\MyProject2フォルダを作成し、このフォルダにリポジトリを作成する
  2. リポジトリブラウザでtrunk、tags、branchesフォルダを作成する
  3. このリポジトリで次のゲーム開発プロジェクトをバージョン管理する

以下、エンドレス。

リポジトリのバックアップ

リポジトリ(今回の例では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フォルダにエクスポートする手順である。

  1. エクスプローラでC:\kirikiri2.28rev3フォルダを作成する
  2. エクスプローラでC:\kirikiri2.28rev3フォルダをマウス右クリックし、コンテキストメニューから[TortoiseSVN‐エクスポート]を選択する
  3. [リポジトリのURL]に https://sv.kikyou.info/svn/kirikiri2/tags/2.28rev3 と入力し、[OK]をクリックする
  4. エクスポート処理結果が表示されるので、[OK]をクリックして閉じる

[リポジトリのURL]に https://sv.kikyou.info/svn/kirikiri2/tags と入力し、隣の[...]からリポジトリブラウザを起動すれば、任意のバージョンのソースコードを選択~エクスポートできる。

チェックアウト

以下は最新の開発版をC:\kirikiri2フォルダにチェックアウトする手順である。

  1. エクスプローラでC:\kirikiri2フォルダを作成する
  2. エクスプローラでC:\kirikiri2フォルダをマウス右クリックし、コンテキストメニューから[SVNチェックアウト]を選択する
  3. [リポジトリのURL]に https://sv.kikyou.info/svn/kirikiri2/trunk と入力し、[OK]をクリックする
  4. チェックアウト処理結果が表示されるので、[OK]をクリックして閉じる

以降、C:\kirikiri2フォルダでマウス右クリックし、コンテキストメニューから[SVN更新]を選択すれば、いつでも最新の開発版に更新できる。

関連項目


*1 2008年7月31日現在の最新版はTortoiseSVN 1.5.2。
*2 2008年2月25日現在の最新版はSubversion 1.4.6。Apache 2.2用と2.0用とでバイナリが分かれているので、Apacheを導入している場合は注意のこと。
*3 Subversionにおいて「タグ」と「ブランチ」は区別されていない。どちらもリポジトリ上のディレクトリを単にコピーしたもの、として扱っている。
*4 ただし、正規版のリリースは、できるだけエクスポートしたフォルダで行った方が良い。