I know I believe in nothing but it is my sweet nothing.:2006年07月20日分

2006/07/20(Thu)

SCMいろいろ

@CVS

PR/34030直った、ワーイ。

厳密にいえばauth_server()側でゼロ埋めしなくなったので
login()内でxstrdup()する必要もなくなったんだけど、
あの手のXXXなコードは下手に直すと別の地雷を踏むのでここまで。

@OpenCVS

ふーんOpenCVSの場合は

$ CVS_RSH=ssh cvs -d :ext:anoncvs@anoncvs.netbsd.org:/cvsroot co src

ではなく

$ opencvs -d :ssh:anoncvs@anoncvs.netbsd.org:/cvsroot co src

として使うのか、checkoutしたworking copyのCVS/CVSROOTの互換性ないじゃん。
一応先日のpatchでNetBSDで動いてる。
manを読む限りpserver clientはサポートする気なさげ。
その割にはcvs serverを実装してるのがよーわからんちん。

@Mercurial

OpenSolaris.orgが採用したSCM、pythonで書かれている。
http://www.opensolaris.org/os/community/tools/scm/dcm_evaluation_mercurial/
http://www.selenic.com/mercurial/wiki/index.cgi

Subversionと比較すると

  1. repository イコール working-copy の近頃はやりの分散SCM
  2. changesetに対して別名(tag)がつけられる
  3. 管理ファイル(.hg/*)はトップディレクトリのみ

2はウラヤマスイのだが(Subversionではtagはcopyなので、tagに対してもcommitできてしまう)
3はどうもなぁ…まるっとhg cloneしないとならないので、つまみ食いできないのが嫌。
ちまちまと機能ごとにrepositoryは分け、flatに配置(xorg6.9 → xorg7.0みたいにね)しないと悲惨。
あとpush/pullはファイル個別には行うことができないってのもわりと困りそうな。
微妙に内容の違うworking-copyがゴロゴロと…ってなる悪寒。
まあcommitはファイル単位でOKなのでmonotoneよかマシげ。

…つうかこのレベルの分散SCMってあんましメリット感じないのよね。

  • push先/pull元がSCMを選ばない(CVSでもSubversionでも何でもよい)
  • ↑の情報がworking copy単位でなく、ファイル単位で設定可能

なら話は別なんだが、さあ今すぐ誰か書くんだwwwwwwwwww

@TortoiseHG

まあそのうち誰かが作るであろうプロダクトなんだろーが
HGな亀ときたらピアスとか入ってるんだろうか(下品杉)。