svn : cvs

cvsが分かってるとsvnもすぐ分かる。比べた結果。

たしかに、バックエンドの洗練度はsvnのほうが上。だから、 アーキテクチャの古いcvsと同じ土俵で比べるってのも失礼なのかもしれないが、 でもまあ、 それはユーザから見たらあまり差がないからそれ以外の点を述べる。 たしかに、ファイルの移動やらができるなど、cvsよりうれしい点がおおい。 が、

svnはリポジトリ体系の抽象度が低い

ようはバージョン管理できるバックアップディレクトリという 位置付け。どう使うかがユーザにゆだねられている分、「ソフトウェアのバージョ ン管理」という概念を理解したくない人にとってはとても使いやすい。が、その 分ユーザ側で指定しなければならないことが多い。リビジョン番号が、全体に対 して付けられる点も良いといえば良いのだが、シンボリックな名前を付けること ができないので、重要な変更を持つリビジョンをコミットするときにははいつで も誰でも分かるようなログを残さねばならない。どうしてもシンボリックな名前 を付けたいならtagsディレクトリへのcopyになるので、「一時通過的」なタグを 付けたいというときにディレクトリが増えちゃうとなるとちょっとゴチャゴチャ 感がある。cvsみたいに一つのブランチにたくさんの通過点を作るとtagsディレ クトリが偉いことになる。でも消せる。かといってほんとに消しちゃうとログを 発見するのがたいへんになる。

その点cvsは「ソフトウェア開発ブランチの流れ」という概念をものすごく 押しつける。だから使い始めのときはなにがなんだか分からない挙動が多い。普 通のタグと、ブランチタグが違うなんてのも気付くまではわけわからん。そのか わり、ブランチ生成とそこでの merge, import のやりかたがわかると、ソフトウェ アのリリースの流れの理に非常に適っていると分かる。タグもシンボリックなリ ビジョン番号であり、どのブランチにあるかにかかわらず一意に定まるので、タ グ一覧さえ分かればマージがしやすい。タグ一覧はpcvs.el がきれいに出してく れるし、どのタグがどのブランチのものか一目瞭然。タグの名前を決める前に熟 慮が必要なので、そういう苦労をしたくない人は疲れるかもしれんが、計画的に やっていくとその分報われる。

結論としては

という印象を受けた。svnはホームディレクトリにある *rc ファイルの バックアップなんかにはものすごく使いやすい。さっそく設定した。ただ、 サードパーティの追っかけ的な仕事をするにはcvsのほうが圧倒的に 楽だと分かったので、これまで公開物でcvsを使ってたのはおそらく 乗り換えないだろうなあ。

そうか

svnの推奨ディレクトリ構成では

  +- branches/
--+- tags/
  +- trunk/

みたいになってるけど、ブランチにシンボリックなタグをビシバシ打ちたい なら

                +- head/
  +- branches/--+- tags/
--+- releases/
  +- trunk/

ってすればいいのか。ブランチの必要がないなら

             +- head/
  +- trunk/--+- tags/
--+- releases/

て感じか。


叱咤激励感想ツッコミはゲストブック

Generated with mkdiary.rb
yuuji@example.org
Fingerprint16 = FF F9 FF CC E0 FE 5C F7 19 97 28 24 EC 5D 39 BA
HIROSE Yuuji - ASTROLOGY / BIKE / EPO / GUEST BOOK / YaTeX [Tweet]