分散リポジトリ中心のSCMを使うべきなの?
Mercurial では実現できても、 CVS (あるいは他の集中リポジトリ型の SCM ツール) を利用した場合には実現が難しい(あるいは運用が面倒な) 構成管理のシステム構成例を示します。
多分、きっと僕は、既にCVS脳でありSVN脳になっていて、SVNに対してほとんど疑問を持っていない。
分散リポジトリを使うかどうかってのは、結局の所、どんだけマージするのか?って話かと。
で、正直な話、僕は余り頻繁にマージしてない。
僕が漫然と感じているのは、CVS脳でSVN脳だと、余りマージしなくても良い様にするんじゃないかな…と。
いや、正直、SVNですらブランチを切ってトランクとマージしていくのは、地獄の様な作業になる。
所がどうだ。分散リポジトリを使うと、要は人類皆ブランチって事らしい。
で、引用元を見ると、作業する時には、もう常にずっと、マージしろ、と。
svn updateする様に、日常的にマージしろ、と。
そう考えると、まぁ、何か出来そうな気がしてくる。
リポジトリツリーのツリーみたいな感じで、それぞれを履歴管理しつつ、更にブランチAのブランチBを作って、
そのブランチBをブランチAにマージした上で、トランクにコミットみたいな事が無理なく出来る…とある。
これは、中々に面白い。
ブランチのブランチでも、ちゃんとトランクとマージすれば、トランクにコミット出来る。
ローカルでコミット履歴を構築出来るから、至極私的なコーディングが凄くし易い感じ。
ちょっと真面目に使ってみようかしらん。
で、eclipseのプラグイン。持ってる機能はこんな感じ。
必要なモノは、一通り実装されてるんかな…。
Implemented mercurial commands
* hg init
* hg clone
* hg commit
* hg add
* hg remove
* hg diff
* hg log(Output in History View you can from History view open old revisions in the editor)
* hg annotate(Output in console)
* hg status
* hg view (Only on the project)
* refactor->move refactor->rename (reports problems but works do a refresh..)
eclipseプラグインを使わないなら、この辺のマージプログラムも使うといいかもね。
ファイルやフォルダの比較ができてマージもできる、WinDiffを使い易くしたようなソフトWinMergeの日本語版
GUIな CVS, Subversionクライアントのお供にでもどうぞ。
まぁ、あまり本質は関係ないけども、こんな拡張もあるらし。
この拡張は、 チェンジセットツリーを可視化するための (Graphviz の) DOT 言語ソースを生成します。
僕が、大きな期待をしているのが、このBisectExtension。
This extension (hbisect) eases looking for bugs by doing a binary search in O(log(n)). It adds the bisect command.
最初にbisectの話を見たのはGitの方だったけども、Mercurialにもある。
もしbisectによって、バグが紛れ込んだリビジョンを厳密にかつ、自動的に特定する事が出来るんだとしたら、
これは、非常に重大なツール…という事になる。SVNなんぞ使っている場合ではない。
追記:
eclipseからだと、hg pullが出来ないジャン…。
ううむ…これじゃあ、自由自在に人の変更を取り込む事が出来ないじゃないか…
こんなのもある。