Subversionでロック

Subversionではファイルにロックをかけてコンフリクトを避けることができるらしい。おお!バイナリファイルはコンフリクトしちゃうとマージできないので、どうしたもんかとネットをさまよっていたら書いてあった。(http://subversion.bluegate.org/doc/ch07s03.html

ClearCaseのような厳格なロックじゃなく、必要に応じてだれでもロックを解除できるゆる〜いロックだが、かなり使えそうな気がする。これでワードファイルなんかも管理しやすくなりそう。

といっても基本は、コンフリクト・マージが少なくなるようにファイルを分割して運用することだろうな。

DBのトランザクション

WebアプリのテストにHsqldbを積極的に使おうと思ってトランザクションの隔離レベルが気になった。ということでメモ。

マニュアル(http://hsqldb.org/doc/guide/ch02.html#N104FC)によればHsqldbの隔離レベルはREAD_UNCOMMITTEDのみのサポートらしい。さらに、MySql(InnoDB)のREAD_UNCOMMITEDと異なり、同一行に対する更新に対して排他ロックがかからない。さらに、MySqlOracleでは検索時にFOR UPDATE句で排他ロックを積極的にかけることができるが、Hsqldbはサポートしていないみたい。

なので、Daoなどのテストで一時的にHsqldbを利用するときに注意すべきは、トランザクション隔離レベルに依存したテストは実施すべきではない、ということ。1つのトランザクションでDaoの機能をテストするだけなら問題ないが、2つ以上のトランザクションでDaoの機能をテストしちゃまずい。


参考:

どんとかまえなあかんなー

仕事やってて少々悩む。
まぁあせっちゃいけないということです。冷静になるって大切。

きっちりとやろうとするあまり、あせりが出てしまうのだろうと思うのか。
バランスとるのはどうやるのかなぁ。