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として登録したら便利かも。
Improved support for large deployments on FSFS, via sharding
これまでFSFSリポジトリでは、各リビジョンファイルはひとつのディレクトリ化にすべて格納されていましたが、
1000ファイル(リビジョン)毎のディレクトリが作成されるとのこと。
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ですか。
一見「すげえ」と思ったが、マスタからスレーブへの差分通知が、
「フックスクリプトでやってね」な感じなのでなんか微妙な気が。
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
More than 150 new bug fixes, enhancements
CHANGESを見てねと。
http://svn.collab.net/repos/svn/trunk/CHANGES