ちょっと使ってみた感じのCVSとSubversionの違い
会社でチームのソースコード管理をCVSからSubversionに移行した。移行してまだ1週間くらいしか経っていないが、感じたことを書きます。
CVSでやっていたこと
違いについて書く前にCVSでどういう管理をしていたかについて少し書きます。自分が所属しているチームは7人くらいなので同時に1つのファイルを編集することがほぼ無い。というか絶対ない。リリースブランチが1つあって、リリースするファイルに1つづつブランチタグを付けていくだけ。結構ゆるい感じなんだけども楽でわかりやすくて良いなと思います。
なぜSubversionに移行したか
会社で管理しているCVSが今後廃止されSubversionに移行するので仕方なく移行したみたいな感じです。特にCVSで困ったということはなかったわけですが、Subversionはコピーや移動が容易にできるということで柔軟な管理ができるのではという期待がありました。
移行後の感想
悪くはないんだけど細かいとこが使いにくいというか…慣れれば問題ないのかなー、と思ったりします。
svn logの内容
svn logで出てくる表示内容が少し物足りない?量が少ない?ような気がする。リビジョン管理がCVSとはかなり違う(あとで書く)からかなと。けどそれが慣れれば気にならない程度のものなのかはまだわからない。
$SVNROOTとかいちいち入力するのがめんどくさい
リポジトリのパスが長くなるので、いちいち入力するのがめんどくさいなーと毎回思います。Subversionでリポジトリを指定する際は「svn+ssh://〜」(sshを使っている場合)という感じになります。.bashrcに、「export $SVNROOT=svn+ssh://〜」と書けば少しは省力できるがそれでもCVSよりはめんどくさい印象。何か方法があるのなら誰か教えてください。。
リビジョン番号がリポジトリ全体で管理されている
CVSはファイルごとにリビジョン管理されていますが、Subversionはリポジトリ全体でリビジョン管理されておりコミットするたびに全体のリビジョン番号が1つ上がります。この違いを飲み込むのに少し時間がかかりました。。
CVSではあまり気にせずにコミットしていましたが、Subversionではコミットするたびにリポジトリ全体のリビジョンが上がってしまうのである程度切りのいいところでコミットしないとあとでブランチなどとマージするときにめんどくさいことになります。
まとめ
Subversionにするといいこと尽くめだと思っていましたが、意外と大変でした。リビジョン管理に大きな違いがあるので、今までごっちゃにしていたリポジトリを分ける必要があるかもなと感じました。