会社でArXを使ってはや2年

fork(ブランチ)が軽く、mergeが賢いなど使い勝手がよいのですが、いまいち広まっていません。ArXのユーザマニュアルを翻訳したものを置いたりしたのですが、あまりmailing-listのトラフィックには影響なかったり。walterさんにほめられたのがうれしかったけど。集中型scmだとsubversion, 分散型だとbzrかgitと相場が決まってきたのだろうか。

git, dacs, bzrやhgのモデルはブランチが重い(ぜーんぶコピー)のでsubversionのようなインチキをしたいところだけれど、それも分散型ゆえ無理。GNU ArchやArXはブランチポイントをマークするだけでブランチングできるので、どんなに大きなリポジトリでも瞬時にブランチできる。そのかわり、ブランチの削除には熟慮が必要となる。削除されたブランチを基にした別のブランチをgetする際に破綻するのだ。なので作ってしまったブランチを隠さず公開するのが大前提。もちろん隠したい場合の抜け道もあるけれど、茨。
この欠点はArX-3.xでmicro-branchやterminate-branchなどの概念を持ち込んで解決しようとしているが、リリースは遠い。

いまなら日本人でArXのユーザは多分一桁。subversionでどのブランチの成果をtrunkに入れたかをいちいちcommit messageで書かないといけないというのが耐えられない人は是非、ArXを試してみてくださいませ。
arxなら、arx merge hoge.branchで、hogeプロジェクトのbranchをマージしたあとは、いつでもマージされた側でarx historyするとマージしたブランチがわかるのだ。その上、マージしたブランチがさらに更新された場合でも、単にarx merge hoge.branchで大丈夫。この辺の特性はdarcsやbzrとかでもたぶん同じだと思うけど、branchを作成する際のコストが違いすぎる。先に指摘したようにArXのブランチ(fork)はどれほど大きなリポジトリからでも瞬時にブランチできる。もちろんブランチ作成先をgnome-vfs上につくることもできる。
ね。ちょっと興味でてきません??(宣伝)