Subversionのバージョン管理の方法で覚えたことがあったのでメモ。
リポジトリに作成する、trunk, branches, tagsにはそれぞれ意味がある。
trunkについて
trunkは動作が保証されたソースファイルの本流である。本流のデータなので1つしか存在しない。trunks(英語の複数形)ではないので、基本的にソースの本流は1つしか存在しない。
ディレクトリ構成は以下のようになる。
../trunk/対象のファイル
branchesについて
branchesは各機能の開発の作業場。不具合がある場合もある。branchesは英語の複数形なのでbranches内には複数のブランチを作成して作業する。
ディレクトリ構成は以下のようになる。
../branches/任意のブランチ名/対象のファイル
tagsについて
tagsは納品時など、決まったタイミングのtrunkを取っておく場所。tagsは英語の複数形なのでtags内には複数のタグを作成して作業する。
ディレクトリ構成は以下のようになる。
../tags/任意のタグ名/対象のファイル
これらは以下のようなワークフローで上手く使い分けながら作業する。
trunk → branches → trunk( → tags) → branches → trunk( → tags) ……
具代的には、以下のような流れになる。
- 動作確認済みの状態でブランチをトランクにマージする
- トランクからタグを作成する
- トランクからブランチを作成する
流れが理解出来たところで、以下よりTortoiseSVNからの操作方法を説明する。
branchesのブランチからtrunkにマージする
brachesにて作業を行った後は、任意のブランチを動作が確認できたタイミングで本流であるtrunkへマージする必要がある。
TortoiseSVNでマージを行う方法
クライアントのメニューからマージを選択する。マージタイプは適切なものを選択する。TortoiseSVNでは、実際にマージを行う前にマージのテストを行うことができるので是非この機能を活用したい。
trunkからtagsにタグを作る
branchesのブランチからtrunkへのマージが完了したら、それと同じタイミングで新たにtagsにタグを作る。タグ名にはバージョン番号を使う。例えば、バージョン番号はv1.0.0.0のように命名する。
TortoiseSVNでタグを作成する方法
クライアントのメニューからブランチ/タグの作成を選択する。
trunkからbranchesにブランチを作る
branchesのブランチからtrunkへのマージが完了したら、それと同じタイミングで、新たにブランチを作成する。ブランチ名にはタイムスタンプ付きのリリース名称などを使う。例えば、リリース名称はfor-1st-update_20130101のように命名する。
TortoiseSVNでブランチを作成する方法
クライアントのメニューからブランチ/タグの作成を選択する。
追記
2012年当時はSubversionを使っていたがSubversionによるバージョン管理を辞め、代わりにGit + Githubの環境に移行した。
参考
会社の先輩からの指導