Subversion 1.5.0 リリースされてた

gitやらMercurialが流行の最近ですが、Subversionは良いですよ。

http://subversion.tigris.org/svn_1.5_releasenotes.html


Backlogでは、Subversion(1.4)にてサービスしていますので、
「What's New in Subversion 1.5」をちょっとメモ。

Merge tracking (foundational)

これまでDISられてきた最大の理由(?)と思われる「マージしにくいよね?」を解消する機能、
「マージトラッキング」が追加!
"foundational"と書かれており、Known Issuesも明記されているので、
まだまだこれからの機能なのでしょうが、だいぶマージの負荷が軽減されそう。

でも、これまでsvnmergeを利用してたので、あまりかわらないかな。
svnmergeからの移行スクリプト( svnmerge-migrate-history.py )も用意されている。

Sparse checkouts (via new --depth option)

これまでの"-N"オプションの発展系のようですが、あまり使わないかな?
"--depth"というオプション名が直感的でない気がする。

Interactive conflict resolution

コンフリクト時に「コンフリクトしたけどどうする?」を
インタラクティブに選択できるようになったとのこと。
これは便利、というかsvkにはあったよね。

Changelist support

ファイルをグルーピングして名前を付けられるということかな?
その名前付けをしたグループをChangelistと呼ぶと。
Changelistを指定してのdiffやcommitが可能か。
良く編集するファイル群をChangelistとして登録したら便利かも。

Relative URLs, peg revisions in svn:externals

svn:externalsに相対パス指定ができるようになったと。

Cyrus SASL support for ra_svn and svnserve

認証に Cyrus SASL が使えるようになったと。
使わないけど。

Improved support for large deployments on FSFS, via sharding

これまでFSFSリポジトリでは、各リビジョンファイルはひとつのディレクトリ化にすべて格納されていましたが、
1000ファイル(リビジョン)毎のディレクトリが作成されるとのこと。

これまでのディレクトリ構成を前提としてのhookスクリプトやメンテスクリプトとかがもしあれば、注意が必要。

Improved FSFS optimizability, via immutable file isolation

FSFSだとリビジョン=ファイルなので、そのファイルはもう変更されない。
だからOSに永久なキャッシュしてもらっていいんだけど、NFSなどではそうならない。
なので、変更されるファイルは"db/revs" と "db/txn-protorevs"に閉じ込めて、
mountオプションとかでどうにかできるよとのこと。

NFSマウント先にリポジトリがある場合に、"db/transactions"のみ自ファイルシステム上に作成することもでき、そうするとパフォーマンスが良くなるよ!。

WebDAV transparent write-through proxy

1マスタ・多スレーブな負荷分散のためにスレーブへのコミットをマスタに伝達する仕組み。
スレーブへのコミットをマスタに流すproxyですか。

一見「すげえ」と思ったが、マスタからスレーブへの差分通知が、
「フックスクリプトでやってね」な感じなのでなんか微妙な気が。

MySQLレプリケーションみたいに、スレーブがコミットログ取りにくるような仕組みだと面白そうなんだけどなぁ。

Improvements to copy and move

copy と move が速くなったよと。

Speed improvements, cancellation response improvements

キャンセルが速くなったよ。
たしかに、キャンセルすると固まってたよね。

Easier to try experimental ra_serf DAV access module

ra_serfを試しやすくなったよと。
試したことないけど。

API changes, improvements, and much language bindings work

APIがかなり変ってるよと。
各言語用バインディングは大体対応してるけど、ちょっとずれてるかもよと。

More than 150 new bug fixes, enhancements

CHANGESを見てねと。
http://svn.collab.net/repos/svn/trunk/CHANGES

Subversion 1.3.x series no longer supported

というわけで、1.3系はもうサポート外になったとのこと。



実際の動作はあとで試す。