TortoiseSVNを触ってUnityプロジェクトを管理してみる

# 概要

TortoiseSVNについての概要とリポジトリ作成、コミット、コンフリクト解決、Unityプロジェクトの管理までを調べたのでまとめました。

# 調べようと思ったキッカケ

某企業のハッカソンで使うため予習しようと思ったから。

# TortoiseSVNとは

バージョン管理システムのうちの一つであるSubversion(SVN)のクライアント。よく使われるGitとの違いは集中型か分散型かであるということ。

SVNは集中型で中央リポジトリを元に複数のユーザーがプロジェクトを管理。
Gitは分散型で各ユーザーがローカルで独自のリポジトリを持ちリモートリポジトリと同期する。

# メリット・デメリット
### メリット
・シンプルであること
Gitのように複雑な操作を必要としない。プログラマー以外でも使いやすい。

### デメリット
・バージョンの管理がローカルでできない。

・ブランチの複製に時間がかかる
Gitは差分を計算してブランチを作成するため時間がかからないが。SVNはディレクトリを複製するので時間がかかる。

# インストール方法

以下ページからDLし、インストーラーを起動する。特に気にすることなくOKを押していけば大丈夫。

https://tortoisesvn.net/downloads.html

同じページの下部に日本語化パックが存在する。お好みでいれる。適用方法は、先にTortoiseSVNをインストール後、ダウンロードしたパックを起動してOKを押していく。

最後の画面でConfigure…にチェックを入れておくと設定を開かなくても日本語が適用されるのでお勧め。

![8871cc18c44050121dc31a65b3dc4f26 (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2654136/327044f8-cd84-9301-f9a4-2604bcbc1da3.png)


# リポジトリ作成
※本来はリポジトリはサーバー上に置かれる。
適当な場所にリポジトリ用のフォルダを作成し、右クリック、tortoiseSVNからリポジトリ作成を押す。

![9ff4e27152db053063817a51e9733db5 (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2654136/18502a77-b050-a0ed-6591-8b55fa8fc242.png)

この時、「ここにリポジトリを作成」が表示されないことがある(自分はチェックアウト、インポート、設定しかなかった)。

その場合は設定を開いてwin11コンテキストメニューから「ここにリポジトリを作成」のアイコンにチェックを入れる。

その後、適用を押してOKを押すと表示される。

![4d1c5f73140244a7f67b8d4f031f85d0 (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2654136/29b70608-4d79-3836-f99c-a8785567aa92.png)

リポジトリを作成できると、先ほど作成したフォルダの中が以下のようになる。

![727b8bb9d331ced46f6a314a6f859b8e (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2654136/621719c8-f91f-9d1e-3d70-bfa595a76872.png)

# コミット

実際に作業を行うための作業フォルダを新たに作成する。

![c5760fc105070b92a6860881f343e6df (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2654136/c4b9a42a-133e-9514-92ff-8c867ae95ff6.png)

上がリポジトリ用のフォルダ、下が作業用のフォルダ。

作業フォルダの方で右クリックTortoiseSVN＞チェックアウトを選択。

![9ff4e27152db053063817a51e9733db5 (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2654136/fd8bdc1d-c04b-21f8-7057-d4c754c0d296.png)

リポジトリのURLにリポジトリのフォルダを選択しOKを押す。完了すると作業フォルダがこのように表示される。

![442cc8bb50122be4a1cbf301d37225c6 (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2654136/6e254eca-ffe5-f563-308b-dee9dbd64b8f.png)

次に作業フォルダにUnityプロジェクトを作成する。

作成後、フォルダ内の適当な場所で右クリック→TortoiseSVNからコミットを押す。

![4b8efcc4c7ed51e435f0537fa1ee6bfc (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2654136/43591449-e338-4760-1511-117d2c2ddc1c.png)

すると以下のように追加したフォルダ一覧が表示されるようになる。

![a3108bdf764b20f14cd77598a1fe22dc (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2654136/cd2c6c20-d255-e90f-8cc0-10f710a543cc.png)

上のメッセージ欄にコメントを書き、コミットしたいものにチェックをつけてOKを押すとコミット完了になる。

Unityプロジェクトのバージョン管理ではLibrary、Logs、Tempは管理しなくてもいいので無視するようにする。TortoiseSVNでは以下のように無視したいフォルダを右クリックし、選択すると無視できる。

![55e974f8d716c3e22cc251205b05a794 (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2654136/b516ddb0-047c-3703-57e7-7f97f307c90d.png)

# コンフリクト解決

複数の作業フォルダで作業していた場合、以下のように競合状態になることがある。

その場合、右クリックから「thieirsを使用して競合を解決する」や「mineを使用して競合を解決する」から解決できる。

![9fb88c060e05371d5d57e658d50d47e8 (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2654136/314622ee-ab95-60d3-5fbb-ee35b65ba637.png)

また競合を編集からマージツールを開くことでより細かくどこが競合しているかを見ることができる。

![150de61d4e8afe31ca0ca8eec7681a26 (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2654136/4500f396-192c-d455-6b9f-a39e852464ac.png)

この画面でもどのように競合を解決するか修正できる。下部のマージ済みに表示されている部分は編集することが出来る。左上の保存から保存することができ、保存時に解決済みとみなすようにもできる。