Subversionはブランチとタグは区別がなく単なるファイルの複製でしかない。どちらもsvn copyによりコピーすればよい(コピー先のディレクトリがブランチ名/タグ名と見なせる)。コピーするとファイルがAddされるので、最後に忘れずcommitをすること。
ブランチとタグを区別するためにコピー先をディレクトリで分けておくとよい。
以下の例ではtrunkに本流のソースがあり、branches以下にブランチ、tags以下にタグを格納するものとする。
SampleProg/ プロジェクトTop +----trunk/ 本流のソースを格納 +----tags/ タグを格納する為のディレクトリ +----branches/ ブランチを格納する為のディレクトリ
TrunkからdevBranchブランチを作成する # cd (作業ディレクトリ) # svn copy trunk branches/devBranch A branches/devBranch <== trunkの内容がbranches/devBranchにコピーされる # svn commit
TrunkにbetaReleaseタグを設定 # cd (作業ディレクトリ) # svn copy trunk tags/betaRelease A tags/betaRelease <== タグもブランチと同じくコピーするだけ # svn commit
# cd branches/devBranch # svn log --stop-on-copy <略> ------------------------------------------------------------------------ r399 | kztomita | 2006-06-06 18:31:49 +0900 (火, 06 6月 2006) | 2 lines xxxx修正 ------------------------------------------------------------------------ r398 | kztomita | 2006-06-05 15:39:49 +0900 (月, 05 6月 2006) | 3 lines 新機能開発用ブランチ追加 ------------------------------------------------------------------------ #
# cd (trunkの作業ディレクトリ)
# svn merge -r 268:HEAD file:///home/SV/TestRepos/SampleProg/branches/beta_release
# svn commit
# svn switch file:///home/SV/TestProgram/SampleProg/branches/devBranch