Subversionにおけるtrunk, branches, tagsの使い方

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) ……
 
という順に上手く使い分けながら作業する。
 
具代的には、以下のような流れになる。

  1. 動作確認済みの状態でブランチをトランクにマージする
  2. トランクからタグを作成する
  3. トランクからブランチを作成する

流れが理解出来たところで、以下より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の環境に移行した。Subversionはもう時代に合ったバージョン管理方法ではなくなっている。適切なワークフローでGitを使ったほうがソースコードの品質が良くなるので、Gitを使用することを推奨する。
 
 
参考
会社の先輩からの指導

Article written by

One Response

  1. 技術三昧
    技術三昧 at | | Reply

    詳しく記述したら、参考になれるかも。

コメントを残す