VSS? SVN?

個人的にはどう転んでもSVNなんだが、
世の中にはVSSが良いと主張する人たちがいる。

その一つの理由は「バイナリの扱い」だったりするけど、

もう一つの理由は「ソースは俺のものだから書き換えるな」という人がいるということ。

VSSは排他モデルなんだよね。
「俺のソースは俺のもの」
逆に
SVNは協調モデル。
「俺のソースはみんなのもの」

どっちが良いかは一概に言えないけれども、
所謂SVNには

  • コミットしようとしたらもの凄く書き換えられていてまるで別物をマージしろと言われて憤慨する
  • コミットした筈なのに修正が消されてしまっている(誰かがマージに失敗している)
  • 勝手にソースを直されるのは嫌だ(特に理解していないプログラマに)

という問題は発生しうる。

そういった意味では、
ロックして排他的な制御を行っているVSSに理があるとも言える。
が、

  • 直したい時にチェックアウトしたままのあいつはいない
  • 概念上同ソース上にあり、編集結果は(パラメータの変更などなので)かち合わないはずだが同時に変更作業ができない(一応多重チェックアウトもできるけどね)
  • VSSがうざい(意味不明な動作をユーザーに押しつける。変なエラーメッセージを多発する。外部で開かれているファイルを更新できない)

という欠点を持っている。

少なくとも自分は「ソースコードは協調モデルであるべき」と考えているんだけどね。


なぜなら「ソースコードはオレオレ芸術作品ではない」から。

だので、あらゆることは話し合うべきで、
失敗からは学ぶべき。
僕もSVNでぶち切れた経験があるのででかいことは言えないけど。

でも、そうはイカンザキ、
「俺のソースは俺のソース」
という人が予想以上に多いものなのだけど……。