日々之迷歩

世の中わからんことだらけ

ITが複雑で難しくなっていく様に翻弄される日々です。微力ながら共著させていただいた「シェル・ワンライナー160本ノック」をよろしくお願い申し上げます。

Subversionのブランチとタグ

Subversionのブランチとタグは、なんか単純なコピーのような感覚だ。

ブランチを作成するには、リポジトリ内のbranchesにtrunkの内容をコピーする。ブランチtest1を作成するには、

$ svn copy REPOSITORY/trunk REPOSITORY/branches/test1

この後ブランチtest1を取り出して開発を行う。ブランチtest1をtest1ディレクトリ以下に展開するには、

$ svn checkout REPOSITORY/branches/test1 test1

ブランチtest1を編集後にcommitする。

$ ruby script/generate scaffold blog title:string description:text
$ svn commit -m 'scaffold Blog Model'

よし、trunkにmergeしよう!今度はtrunkをcheckoutする。

$ svn checkout REPOSITORY/trunk project
$ cd project
$ svn log --verbose

これでリビジョンを確認後、mergeコマンドを実行。

$ svn merge -r 7:11 REPOSITORY/branches/test1

ここでどのリビジョンからどのリビジョンまでか?を指定するのだが、確認方法が分からなくなってしまった。以下のコマンドをtrunkをcheckoutした方でやればよかったと思うが・・

$ svn log --verbose --stop-on-copy

もしくはsvn updateしてみるとか。

タグの作成も同様に、

$ svn copy REPOSITORY/trunk REPOSITORY/tags/release1

タグrelease1をrelease1ディレクトリ以下に展開するには、

$ svn checkout REPOSITORY/tags/release1 release1