Subversion よかった探し
Subversionを使ってて、これはいいなぁと思った機能とその使い方をまとめてみました。ちょっと主観的なのはごめんなさい。
■ ファイルの移動ができる
なんといってもこれは重要ですよね。
svn mv oldfilename newfilename
■ タグとブランチの実装が素敵
SVNでは、タグとブランチは「svn copy」で実装されています。
# タグを打つ svn copy file:///(略)/Project/trunk file:///(略)/Project/tags/1.0-Release # ブランチを作る svn copy file:///(略)/Project/trunk file:///(略)/Project/branches/Stable-branch
「開発の主流とはちょっと違う事をしたいので、現在のデータをコピーして、それをいじる」というのがブランチの趣旨ですから、copyを使うこのやり方は理にかなっています。
タグも、「現在の状態を、どこかにコピーして保存しておく」という点で同じです。
さらに、次のようにすれば「現在あるタグ・ブランチの一覧」が得られます。
svn ls file:///(略)/Project/tags svn ls file:///(略)/Project/branches
わかりやすいです。
■ URLを使ってレポジトリを直接いじれる
タグとブランチの所で暗黙のうちに使ってましたが、svnのコマンドは引数にURLを直接指定できるものがあります。
で、どう使っているかというと、新しいプロジェクトを作る時にこれが有効活用されます。
$ svn mkdir file:///home/penguin/repository/NewProject $ svn mkdir file:///home/penguin/repository/NewProject/trunk $ svn mkdir file:///home/penguin/repository/NewProject/branches $ svn mkdir file:///home/penguin/repository/NewProject/tags $ svn checkout file:///home/penguin/repository/NewProject/trunk ./NewProject
レポジトリの方にあらかじめディレクトリを構成してから、それをcheckoutして作業をはじめるわけです。
■ svn:executable
SVNではファイル(や、ディレクトリ)に「属性」が付けられます。で、svn:executableという属性を付けると、checkoutやexport時に、そのファイルには必ず実行可能属性が付きます。
$ svn propset svn:executable Executable test.cgi
といった感じで使えます。
