kumaryu日記
2006-06-20 法則
_ [monotone] 0.27
NEWSの訳。めんどいので超訳。
2006年6月17日(土) 14時43分12秒 PDT 0.27リリースです。小さなバグ修正や機能の改善、あとsshのサポートです。 でっかい新機能: - push/pull/synchronizeなんかを普通のTCP以外に双方向ストリームを使ってできるようになりました。 - ファイルからファイルへの同期が簡単にできるようになりました。 例: $ mtn -d db1.mtn sync file:/path/to/db2.mtn - SSH経由での同期が簡単にできるようになりました。 例: $ mtn -d local.mtn sync ssh://njs@venge.net/home/njs/remote.mtn これにはリモート側にもmtnがインストールされてなければならず、 実行中にはリモート側のデータベースがロックされるので気をつけて下さい。 ロックされるのは複数人で共有されるデータベースへのアクセスとしてはあんまりよくないです。 - Luaのフックで新しいプロトコルを定義することが出来ます。 例えば"$ mtn sync xmpp://njs@jabber.org"なんてのがなんかいい感じになってくれるようにもできます。 - 詳しくはマニュアル内"Advanced Uses"の下の"Other Transports"を見て下さい。 ちっちゃい新機能: - セレクタでエスケープがサポートされました。 例えばb:foo\/barはブランチ名"foo/bar"を指します。 (普通/は複数のセレクタを指定する時のセパレータとして使います。) - Visual C++でmonotongがビルドできるようになりました。 (何が嬉しいかってぇと、Windows上でのデバッグがちょっとやりやすくなるのが大きいです。) - --quietはティッカーを表示しなくなりましたが、 警告の表示は行なうようになりました。 新しくできた--reallyquietオプションは警告も表示しません。 - 'automate common_ancestors'コマンドが追加されました。 - 'ls branches'に $ mtn ls branches "*contrib*" のようなパターンを指定することが出来るようになりました。 高速化: - select()ループのバグが直って、 サーバーで一つのクライアントが処理中に他のクライアントが待つことは無くなり、 公平に処理されるようになりました。 - データベースに新しい書き込みバッファを追加し、 無駄な書き込みを無くすことで 新規のpull時にかなりの高速化を果たしました。 - 全体的なチューニングでちょっと速くなったかも。 バグ取り: - マージツールが失敗して抜けたのを検知できるようにしました。 - Win32でOSのエラー報告をマシにしました。 - ~/.monotonercに保存されたパスフレーズはログファイルに記録されないようになりました。 (ターミナルから入力されたパスフレーズは常にログファイルに記録されません) - セレクタのSQLインジェクションバグを修正し、 Webインターフェースなんかでセレクタをそのまま使っても安全なようにしました。 - mtn:execute属性でマークされたファイルはumaskを反映するようになりました。 - 'automate'コマンドはWin32で出力時の改行変換をしないようになりました。 これは特に'automate stdio'で重要です。 - 'db check'はsqliteの"PRAGMA integrity_check"を呼んで、 sqliteのインデックス等の正当性チェックを行うようになりました。 - 'mtn annotate nonexistent-file'はアサートエラーじゃなくて、 まともなエラーメッセージを出すようになりました。 - サブディレクトリ内での'mtn revert --missing'が正しく動くようになりました。 - 'automate inventory'は_MTN/workがパッチの節を含んでいても失敗しないようになりました。 その他: - いーっぱいあった直書きコードを直しました。 - バイナリサイズもちょっと減ってます。 - パケットを使ったチュートリアルをマニュアルに追加しました。 - 訳を更新してエラーメッセージとかを改良しました。 信頼性に関する考察: - 0.26がリリースされてから二ヶ月になるわけですが、 新しいコードに関しては深刻なバグは全く報告されてません。
ファイル間の同期は嬉しいぜ。
これでmonotoneサーバーを立てなくても、リポジトリをアップしておいて適当に拾ってpullなりsyncなりしてよ、って言えば終了。
手抜きまくり最高!!
hookをかけばhttp経由でのpullも簡単に出来そうだね。syncとかpushは嫌だけど。
あ、UPGRADEの方は特に何も書いてなかったんでリポジトリとかワークスペースの変更はいらんようです。インストールするだけでOK。