VSSの活用されてなさは異常
VSSを使ってきた人たちのSubversionに対する感想は、大体
- VSSもそうだったけど、何がそんなにうれしいの?
- VSSはもっと簡単に使えたのに、Subversionは面倒
- VSSもSubversionも同じようなものだと思ってたのに、ぜんぜん違う。Subversionスゲー
くらいに分かれる。
これって、誰も彼もVSSをきちんと活用できてないだけなんじゃないかな。
それぞれ、
- そもそもバージョン管理する意味を分かっていない。使えと言われたから使っている
- 運用ポリシーなど決めずになんとなくVSSを使っていた。運用ポリシーのある、なしをVSSとSubversionの違いだと勘違いしている
- VSSを共有ファイルの排他制御用ソフトとしてしか使ってない。「便利な共有フォルダ」どまり
みたいな。
そもそも、VSSユーザに「ブランチ」や「コミットログ」とか言っても、言葉が通じない。
VSSがこれらに対応していないというわけでは勿論なくて、ただ単に知らないだけ。
それでも、上の人はVSSを使っているという点だけを見て、「うちはきちんとバージョン管理が出来ている」と錯覚してるわけだ。
それで上が満足してるから、VSSがそれ以上活用されなくても不思議ではないよなぁ。
Subversionの理解されてなさも異常
VSSとSubversionが思想とか仕組みレベルで同じものだと勘違いされてることが多い。
VSSはその仕組み上、ファイルサーバにリポジトリを置いておいても問題にならないけど、Subversionでは問題大有り。
Subversionのリポジトリは一種のファイルサーバのようなもので、ファイルサーバ上にリポジトリを置くということは、ファイルサーバ上にファイルサーバを構築しているようなもの。
そういう「考え方がおかしい」というところは見ないとしても、ファイルサーバにリポジトリを置くと、リポジトリ操作のためのコマンドがクライアント側で行われる、といった問題点もある。
これのせいで、どのマシンにもインストールされているであろうもの*1を使ってしかフックスクリプトが書けなくなってしまう。
コミットログが記述されてなければコミットを失敗させるのにも一苦労だ*2。
フックスクリプトを書いたはいいけど、ファイルの権限を変更する権限がないから、勝手に編集されて回避される可能性もある。
これも上の人が、「SubversionもVSSもバージョン管理ツールなんだから、ファイルサーバで問題ないはずだ」みたいな思い込みがあると、末端レベルでは如何ともしがたい。
pre-commit.bat
ちなみに、pre-commit.batはAkt One.: SVN で空ログを禁止する hook script (bat版)を参考に、終了前にファイルを削除するように変更を加えている。