やばい。保証切れてる。
技術費13,000円も取るとか言ってる。
おそらくブラウン管交換になると思われる。基板は完全に生きてるもん。
4〜5万は覚悟か? 4万5千以上になったら修理断わって仕方無く液晶買うか。
3万くらいでなんとかならんかなぁ。
なんにしても見積りも再来週くらいになりそうだけど。テレビじゃ字が読めなくてつらい。
メインマシンがiMacだから良かったけど…。
NEWS訳したよ。
2006年9月17日(日) 12:27:08(PDT)
0.30をリリース。速度の向上とバグ修正と基本的な構造の改良ですよ。
内部的なデータフォーマットがこのリリースで変わってます。
なんでマイグレーションは簡単だけどいつもよりちょっと面倒です。
-- データベース中のキャッシュデータ構造が変わってます。
データベースのアップグレードには、
$ mtn -d mydb.mtn db migrate
$ mtn -d mydb.mtn db regenerate_rosters
とかやる必要があります。
-- 各ワークスペースの_MTNに保存されてたメタデータがちょこっと見直され
ました。
ワークスペースのアップグレードには、
$ mtn migrate_workspace
というのを各ワークスペースに対してやる必要があります。
このアップグレードを行なうことで消える情報とかは無いです。
あとnetsyncなんかは0.30と前のバージョンとで互換性があります。
速度の向上:
- ブランチのヘッドを探すアルゴリズムが書き直されてメモリとCPUの使用量が
劇的に削減されました。
これで'mtn heads'が速くなるのはもちろん、
'mtn commit'とか'mtn update'とかその他のヘッドを探すのに時間をかけてた
コマンドも速くなります。
- データベースにrosterのキャッシュを入れるのに使ってたフォーマットを書き
直しました。これで初回のpullがだいたい2倍くらい速くなって、ついでにlog
とかannotateなんかも速くなってます。
- xdeltaアルゴリズムがかなり最適化されました。
- Botanのメモリリークが修正され、'mtn checkout'で余計なメモリとCPU時間を
喰ってたのが直りました。
- Monotoneはシステムが素のASCIIで動いてる時に文字コード変換にfast-paths
を使うのですが、"646"をASCIIの別名として認識するようにしたので、いくつ
かのBSDなんかのようにこの名前の使うシステムでfast-pathsの恩恵を受けら
れるようになりました。
- ほかに細かい改善をしました。
ワークスペースのフォーマット変更:
- 複数の親がある(マージする)ワークスペースを表現できるようになりました。
といっても、monotoneはこんなワークスペースを今のところ弾きますし、作れ
もしません。
この変更は今後の変更のための基盤を整えるものです。
- _MTN/revisionが親の以外のリビジョンIDも含むようになりました。
スクリプトなんかで以前の状態を使ってた場合はかわりに
'mtn automate get_base_revision_id'を使ってください。
あと_MTN/workは無くなりました。
UIの変更:
- 'mtn status'はブランチ名と親のリビジョンIDも出力するようになりました。
- 'mtn annotate'と'mtn annotate --brief'の出力が入れ替わりました。
人間が読み易い方がデフォルトになってます。
- 'mtn pluck'は操作が何も効果が無い場合はエラーメッセージを出すようにな
りました。
- コマンドラインのエラーがあった時、使い方の情報をstdoutじゃなくてstderr
に出すようにしました(--helpを付けた時はstdoutに出します)。
これでスクリプトなんかを書いてる時のバグも見つけやすくなります。
バグ修正:
- Changelogのメッセージが常にUTF-8に決め打ちされてたのを直しました。
ユーザーのロケールに従って正しくメッセージの変換をするようにしました。
- "cancel_size < pending_writes_size"というエラーメッセージを出してたまに操作
が中断してしまうというさんざん悩んだバグが末にあっさり直りました。
- 0.29で--helpの出力がローカライズされないのを直しました。
- 0.29でEDITORが"emacs"に設定されているとmerger = "emacs"の設定が効かない
(同じようなのがviでも起きた)のが直りました。
- 特定の順番でrenameとaddsを実行すると稀に変わらないはずの物が壊れる時があるの
を直しました。
- テキストファイルの競合を解決できなかった時、マージは結局成功しないにも関わら
ず残りの競合してるファイルの競合を解決するか聞いてくるようになってたので、
解決失敗時にすぐに終了するようにしました。
- g++ 3.3でぶっこわれてたのをなんとかしました。
ドキュメントの変更:
- *マージのドキュメントをマニュアルに取りこみました(もうちょっと上手く整理する
必要はあるんですが)。
automateの変更:
- 'attributes'のバグ修正。
このコマンドは現在のリビジョンでファイルから取り除かれた属性を一覧表示するは
ずなんですが、今までにそのファイルから取り除かれた属性全てを表示していたので
直しました。
- 'get_corresponding_path'コマンドの追加。
なんかパスPとあるリビジョンAと他リビジョンBを受けとって、リビジョンAでの
パスPがリビジョンBでどこにあるかを探して状態を表示します。
- 'get_content_changed'コマンドの追加。
なんかパスPとあるリビジョンAを受けとって、Pが最後に変更されたリビジョンAの親
を探します。
- 'get_option'コマンドの追加。
_MTN/optionsからオプションを取得します(例:現在のワークスペースのブランチやデ
ータベース等)。
- 'genkey'コマンドの追加
monotoneのキーを新しく作るコマンドのautomateで使い易い版。
あとUPGRADEは適当に訳すね。
0.29以前から:
データベースの構造が変わってます。
$ mtn -d mydb.mtn db migrate
$ mtn -d mydb.mtn db regenerate_rosters
をデータベース毎にやって下さい。
あとワークスペースのフォーマットも変わってるんで、
$ mtn migrate_workspace
を各ワークスペースでやって下さい。
こんな感じ。
なんかChangelog周りの文字コード変換とかって大丈夫かなぁ。
あんまり自動文字コード変換って期待してないんでUTF-8統一の方が安心はできるんだけど。
Windowsのcmd.exeではUTF-8で文字化けしちゃうのがアレだけど。
…でもなんかコード自体にパッチ当てるとか7.1とか出た時に怖い気もするね。
ところで、Tune-up iTunes7が出てるのに気付く前にスクリプトでiTunesでリッピングしたMP3のタグを変換しようとしたわけよ。
iTunesでリッピングするとタイトル情報とかはiTunes上で出てはいるけど、実際はなんか変なタグしか付いてなかった。 どうも標準で付くタグはiTunesの内部データっぽいな。タイトルなんかは独自管理か。
でiTunes上でタグ変換をしてやるとちゃんとまともなタグは付いてくれた。
付いてくれたけど…なにこれ?
文字がかなり意味不明なエンコードされてる。
日本語部分はutf-16le、英語部分はASCIIだと? 一体どうやってそんなのデコードしろってよ。しかもiTunes上でUnicode修正とか何度も実行したらぶっこわれましたよ? ど、どういうこと?
つーわけで、またTune-up iTunesにお世話になることにしました。 むむぅ。
やっぱりiPodでも買えばいい気もするんだが…。