11月28日の技術勉強会
11月28日に行われました技術発表会の内容を撮影した動画ファイルを公開いたしました。内容は以下のとおりです。
テーマ | Subversion |
---|---|
発表者 | d:id:higepon |
時間 | 11:15 |
ファイルサイズ | 65,297,444Bytes |
以下よりダウンロードしてご覧ください。
http://www.hatena.ne.jp/sound/tech/051128hatenatech.wmv
Subversionとは何か?
Subversion は、フリーなオープンソースのバージョン管理システムで、時間とともに変化するファイルやディレクトリを管理します。
CVSの代替ツールとして、地位を確立しつつあります。
誰が開発しているの?開発の背景は?
バージョン管理のソフトを提供しているCollabNetという会社が開発。
Open Source Development with CVS (Coriolis, 1999)の著者である Karl Fogel とか、 Jim Blandyとか。
CVSには不満がたくさん!。ばっさりと不具合と言い切っていたりする(仕様不具合)
不幸にも CVS はオープンソースの世界において 事実上の標準となっていましたが、それは単に、少なくともフリーライセンスの下ではそれより良いものが何もなかったというのが理由の大部分でした
なぜいまSubversionか?
- 人柱時代の終焉。1.0.0は2004/9 (現在は Subversion 1.2.3)
- Ruby?
- miyagawaさんも絶賛!
CVSとの違い、導入のメリットは?
1.ディレクトリ単位のバージョン管理
CVSがファイル単位のバージョン管理なのに対して、Subversionは、ディレクトリ(ツリー)単位でも履歴が追えます。
ツリーで管理されるプロジェクトと相性がよい。
2.ファイルコピー・名称変更・移動
CVSの不満点の大部分を占める、この問題を解決してくれます。
cvs remove して、 cvs add 履歴はリセットされる
Subversionならコマンドがあるよ。
3.アトミックなコミット
CVSでは、ファイル単位でコミットでしたが、Subversionでは変更点すべてをひとかたまりとしてコミットします。
何らかのエラーで途中までコミットとかはない。
4.ネットワーク層
Subversion はリポジトリアクセス用の抽象レイアがあり、新しいネットワークプログラムを簡単に実装できるようになっています。
→たくさん対応ツールができてくるかもね
5.他
CVSからの移行は大丈夫?
いけてる機能
- svn copy foo bar コピー(履歴が追える!)
- svn move foo bar 移動・リネーム(履歴が追える!)
- プロジェクト初期段階では、ファイル構成やツリー構造は流動的だ!!CVSへの唯一の不満。
- ブランチ間の変更共有 (svn merge)
微妙な動作の違い
- svn add ディレクトリ名 (そのディレクトリ以下のものもaddされる)
- svn update でcvs updateと比べて以下の機能がなくなった
- addが、相対パス指定でできる。
- あるリポジトリごと、一つ前のリビジョンに戻す
- .cvsigonore
svn copy # ブランチ作成
svn merge -r 303:302 http://svn.example.com/repos/calc/trunk
まとめ
良いところばかりだから早く移行しましょう。