PaperSloth’s diary

主にゲーム開発関連についての記事を書きます。

SVN 初めてのバージョン管理

環境

Windows10
TortoiseSVN 1.9.6


概要

VCSを仕事でも趣味でも使っていなくて、興味はあるけどどうしたらいいか分からない。
そんな人向けのローカルでのバージョン管理をご紹介します。
ローカルでのバージョン管理なので、個人プロジェクトや簡単なテスト環境に使える程度に考えてください。
まずはSVNに慣れるところから始めてみましょう。


TortoiseSVNのセットアップ

TortoiseSVNとは

TortoiseSVNApacheSubversion®のWindows版クライアントのことです。
ようはインストールするとExplorerからSVNの機能を呼び出すことができるようになります。
f:id:PaperSloth:20180321105644p:plain

似たものでTortoiseGitというのもあります。
Gitクライアントは自分のように特殊な理由がない限りはSourceTreeを使用する人が多いです。

TortoiseSVNのダウンロード、インストール

下記URLからTortoiseSVNをダウンロードできます。
合わせて日本語の言語パックもダウンロードしておきましょう。
Downloads · TortoiseSVN

インストール作業自体は双方共にNextをぽちぽちするだけです。
注意点として先にTortoiseSVNからインストールし、あとからLanguagePackをインストールするようにしましょう。

インストールが完了したら下図のようにSettingsを開きます。
f:id:PaperSloth:20180321132754p:plain

General -> Languageから日本語に変更します。
f:id:PaperSloth:20180321135636p:plain
これでメニューが日本語になったら準備完了です。


SVNリポジトリ作成

そもそもリポジトリとは?って人に向けて簡単に説明すると
データの保管庫のようなイメージです。
ここに作業データを格納して、更新したり復元したりを行います。

手順① 空のフォルダを作成する
私はDドライブ直下にExampleRepositoryというのを作成しました。
(ProjectName)Repoとか(ProjectName)Repositoryにすると良いでしょう。

手順② 作成したフォルダをリポジトリにする
図のようにフォルダを選択してここにリポジトリを作成を選択するだけです。
f:id:PaperSloth:20180321170540p:plain

すると下図のようにリポジトリを作成したことを示すダイアログが出ます。
f:id:PaperSloth:20180321133756p:plain
OKを押して閉じます。

これで作業データを保管する保管庫が出来ました。


作成したリポジトリをチェックアウトする

先程の手順では保管庫が出来ただけで今は中身は空です。
使用するにはチェックアウトを行う必要があります。

チェックアウトを行うとリポジトリから管理データをダウンロードすることが出来ます。


実際に作業データを格納するディレクトリに移動し、そこで下図のようにチェックアウトを行います。
f:id:PaperSloth:20180321134425p:plain

すると下図のようなダイアログが出ます。
リポジトリのURLの欄に先程作成したリポジトリのパスを入れます。
この時先頭に file:/// と入力するのを忘れないようにしてください。
チェックアウト先のディレクトリというのは実際に作業データを作成するディレクトリを指します。
f:id:PaperSloth:20180321134647p:plain

チェックアウトを行うと下図のようなダイアログが出ます。
f:id:PaperSloth:20180321134958p:plain

チェックアウトしたフォルダ内には.svnというフォルダがありますが
これは削除しないで残しておいてください。
f:id:PaperSloth:20180321140128p:plain


SVNを使ってみる

TortoiseSVNのメニューだけでも色々あって最初は面食らってしまうと思いますが
とりあえず基本の3つだけを知っていれば最低限は動かせます。
追加、SVNコミット、SVN更新です。

追加
ファイルやディレクトリをリポジトリに追加するコマンドです。
コミットするまではリポジトリには追加されません。

コミット
ローカルの作業コピーの変更をリポジトリに渡し、
リポジトリの内容を更新するコマンドです。

更新
リポジトリからデータを取得するコマンドです。
他の人が行った変更も合わせて取得されます。

試しにExampleCommitText.txtというデータで練習をしてみます。
新規にファイルを作成すると ? アイコンが追加されます。
ファイルを選択し、下図ように追加を選択します。
f:id:PaperSloth:20180321142106p:plain

追加を行うと下図のようにアイコンが ? から + に変わったことが確認できます。
f:id:PaperSloth:20180321142321p:plain

続いてコミットを行うことで初めてリポジトリにデータが追加されます。
下図のようにコミットを行いましょう。
f:id:PaperSloth:20180321142621p:plain

コミットをする際にはメッセージを残す必要があります。
このメッセージは後からログを参照した場合などに
どういう変更を行ったかを明確にするためにきちんと書くことをオススメします。
f:id:PaperSloth:20180321142750p:plain

コミットに成功すると下図のようなダイアログが出ます。
f:id:PaperSloth:20180321142932p:plain

リビジョンが0から1になりましたね。

リビジョンとは
変更をするたびに、リビジョンがリポジトリに作成されます。
変更履歴から作業を戻したい場合などにリビジョンNのような形でリポジトリを調べる時に役立ちます。


自分のPC複数でデータを共有する

ここで紹介する方法は荒業ですが、個人でしか作業していないという場合は役に立つかもしれません。

やり方は簡単でDropboxやOneDriveなどにリポジトリを作成するだけです。
今回はDropboxで作成する方法を紹介します。

Dropboxクライアントをインストールすると
C:\Users\(UserName)\Dropboxにファイルが同期されますね。

そこに新規でリポジトリを作成します。
すうと、同一ユーザーの他のPCでもリポジトリが同期されるため
このリポジトリからチェックアウトすることでファイルを共有することが出来ます。


用語のおさらい

リポジトリ
 データを格納する場所。保管庫のようなもの。
 本来はネットワーク上で管理をする。
・チェックアウト
 空のディレクトリに、リポジトリからデータをダウンロードし
 ローカルの作業コピーを作成するコマンド。
・リビジョン
 コミットをするたびに、リポジトリに作成される。
 変更履歴から作業を戻したい場合などにリビジョンNのような形で指定する。
 作業データの管理履歴IDのようなもの。
・追加
 データをリポジトリに追加するコマンド。
 コミットするまでリポジトリに追加されない。
SVN 更新
 リポジトリから最新データを取得するコマンド。
 他の人が行った変更や別PCで行った作業の最新データを取得する。
SVN コミット
 ローカルの作業コピーの変更データをリポジトリに渡すコマンド。
 リポジトリのリビジョンを新しく作成するのに使用する。


最後に

1回では紹介しきれない機能が沢山あるため、続きを書きます。
次回は無視リスト、ログ表示、差分の見方を紹介する予定です。

冒頭でも軽くふれましたが、VCSを仕事でも趣味でも使っていない人向けの入門記事です。
そのため、仕事ではありえないような運用ですが
やらないよりはマシ、まずはやってみようという内容になっています。

続きを書いたらこちらにもリンクを載せます。
続きを書きました。
SVN ゲームエンジンのプロジェクトを管理しよう - PaperSloth’s diary