ソフトウェア設計及び演習2016
svn::タグ
タグを付ける(svn copy)
タグとは,ある時点でのプロジェクトの「スナップショット」のこと.
タグを作成するには svn copy を利用する.例えば,g00/proj の最新のスナップショットを作るには
$ svn mkdir https://svn.cis.iwate-u.ac.jp/svn/csd/16/g00/tags -m "Make a tagging directory" $ svn copy https://svn.cis.iwate-u.ac.jp/svn/csd/16/g00/proj https://svn.cis.iwate-u.ac.jp/svn/csd/16/g00/tags/0.5 -m "Tagging the 0.5 release of the project."
https://svn.cis.iwate-u.ac.jp/svn/csd/16/g00/proj が最新のディレクトリ
https://svn.cis.iwate-u.ac.jp/svn/csd/16/g00/tags/0.5 がその最新のコピーの保存ディレクトリになる.
ログを,-m "メッセージ" で与えておく.
「タグ」と「ブランチ」
タグ
タグとブランチの概念を一言で言えば,
- タグ:ある時点でのソースのスナップショット
- ブランチ:あるソースの本流(trunkという)とは異なる別の開発版
といったイメージである(多少の語弊はあるかも).
svnはバージョン管理システムなので,コミットした際の各々の時点でソースが保存され,必要に応じて戻すことができる(これをロールバックという).その戻すための手掛かりは(svnでは)「リビジョン番号」と呼ばれ,初回のコミット時から順に1, 2, 3, ...という番号で管理される.
しかしながら,自分が戻したい時点のリビジョン番号を覚えている!などという人はほぼいないと思われるので,人間でも覚えておけるような,何らかの文字列で管理する機能を実現しているのが「タグ」である.
ある時点のソースコード全体に対し,本来のタグのように文字列で目印をつける(先に示した手順を行った場合,0.5という名前でタグをつけたことになる).タグをつけた時点のソースコードが必要な場合,その「タグ名」を使ってソースをチェックアウトすれば良い.この機能は,開発においてはいわゆる安定版やリリース版を保持するためによく使われる.
再びsvn copy
概念としては全く異なるタグとブランチであるが,svnではタグもブランチも同一のものとして扱われる.svnでは,スナップショットをとったとき,それ以降はコミットを行わないものをタグ,以降も引き続いてコミットを行っていくものをブランチ,として扱う.いずれも
$ svn copy <スナップショットをとるソースコードのURI> <スナップショットをとる先のURI(新規)>
というコマンドで作られる.違いはシステムが決めるのではなく,扱うユーザが決める(このスナップショットは変更しない,これは変更するといったルールを,自分たちで決めて管理する).
このような事情から,svnでは,慣習的にプロジェクトのトップディレクトリの下に
- trunk (ソースコードの本流)
- tags (タグを置く場所)
- branches (ブランチを置く場所)
という3つのディレクトリを作って管理することが多い.tagsにはタグを置き,branchesにはブランチを置くと決めておくことで,両者の混同を避けている.
最終更新日:2016/06/24 14:15:29