<< 前 ホーム 次 >>

bakaid: 20100507

WinCVS 1.2 ごった煮版、まぁ、これを使えという感じで
渡されてるんだけど。

まぁ、自分はEmacs VCでdiffとかannotation見て、commit
とかupとかはコマンドラインでやっちゃうから気にして
なかったんだけど。

で、その渡されてるWinCVSを試しに使ってみたら、致命的な
バグがあって。編集中のファイルのdiffを、リポジトリの
最新のと比較しちゃうんだな。

たとえば、リビジョン1.1のファイルを編集しているときに
比較したいのは、ほとんどの場合、編集中のファイルと
1.1との比較なわけ。編集中のファイルと1.2とか1.3とかを
比較したいことは滅多にない。

で、WinCVSのdiffも、当然それがデフォになってると
思ってたし、そういう感じでdiffの設定ダイアログが
出るんだけど。どういうわけか、リポジトリの最新と
比較しちゃう。

これが致命的なバグだというのは、オレが勝手に三点
マージ法と呼ぶやり方が使えないから。

CVSの基本的な使い方は、cvs upして自動マージに任せる
やり方。ただ、このやり方は、毎日のように (あるいは
もっと短い間隔で) cvs upしてないと使えないやり方な
わけ。たとえば、一週間に一回のペースでupしてcommit
してる場合なんかだとコンフリクトが大量に出ちゃって
収集がつかなくなる。

で、up/commitのペースが遅いときに使うのが三点マージ。
つまり、上の例でいえば:

  1.1と編集中のファイルのdiff (1)

  編集中のファイルと1.2 (リポジトリの最新) のdiff (2)

という3つのファイルを使ったやり方。つまり、何を
編集したかを(1)のdiff (とWinMerge) で視覚化して、
その差分を確認しつつ(2)のdiff (とWinMerge) で移して
いく。

で、これでわかるように、(1)のdiffが取れないとこの
三点マージはできなくなっちゃう。だから致命的なバグと
いうわけ。

もちろん、渡されてるWinCVSでも、リビジョン指定した
diffは取れるから『致命的』っていうのは大げさかも
しれないけど、でも、ファイル1つ1つリビジョン指定する
なんてバカな話はないわけで。やっぱり致命的なバグ。

まぁ、最初に書いたけど、ぶっちゃけ、自分はWinCVS
使わないんで、どうでもいいっちゃいいんだけど。でも、
(1)のdiffにしても、WinMergeで見たほうがわかりやすいっ
ていうのはあるよね。自分、ちょっとはdiff -uの
フォーマットに慣れてるけど。でも、diff -uすら知らないで
diffの素の出力だったら、とても見る気しないし。

まぁ、WinCVS使うなっていう話もあるけど、だったら
CVS使うなっていう話もあるしね (笑)。個人的には
git LOVEだから(笑)。

あ、このバグ、WinCVS 1.3のSJIS対応バージョンでは
起きません:

http://www.ne.jp/asahi/kuribara/hiroshi/cvstop.html

TortoiseCVSっていうのも試してみたんだけど、あんまり
好きになれなかったなぁ。なんかEmacs VCが使えなく
なっちゃって。それはともかく、Explorerから操作する
のが、やっぱり違和感あったんだよね。まぁ、馴れの
問題かもしれないけど。

本家Permlink

<< 前 ホーム 次 >>


Copyright © 1905 tko at jitu.org

バカが征く on Rails