kumaryu日記
2006-08-29 あっち
_ [monotone] 0.29
仕方ない*1。訳すか。
2006年8月20日15:58:08(PDT)
0.29出たよ。コードを綺麗にしたのとバグ取りだ。
新機能:
- 'mtn status'の出力が結構変わった。
以前は'mtn status --brief'で出力されていたものがデフォルトになった。
以前の'mtn status'と同じような出力が欲しいなら'mtn automate get_revision'を見てくれ
- 競合解決時のマージに使うアプリの指定を大分簡単にできるようにしたよ。
例えばemacsを競合解決に使いたい時は
merger = "emacs"
を.monotonercファイルに入れるといい。
一時的に変えたい場合はMTN_MERGE環境変数に同じような文字列を設定すりゃいい。
いまのところ認識できる文字列は
"kdiff3", "xxdiff", "opendiff", "tortoisemerge",
"emacs", "vim", "meld"
のどれか。
- 前はssh越しsyncでは、
ssh://venge.net/home/njs/my-db.mtn
みたいに絶対パスを指定しなきゃならなかったけど、
ssh://venge.net/~/my-db.mtn
ssh://venge.net/~njs/my-db.mtn
こんな感じでまあなんかできるようになった。
バグ修正:
- たまにmonotoneがCtrl-C(とかなんかその辺のシグナル)を受けた時にちゃんと終了せずに固まるのを修正。
- SIGPIPEを正しく受けとるようにした。
どういうことかというと、'mtn log | less'やったときでも
'less'の終了時に正しく終了するようになったってわけよ。
- 'mtn log'は各メッセージの出力時にバッファをフラッシュするようになったよ。
これで'mtn log <FILES>'がかなりいい感じに動くようになった。
- 'mtn log <FILES>'が以前は全然関係ないリビジョンを表示してた。
(特にファイルとかディレクトリを削除したリビジョンなんかは常に表示されてた。)
で、これを修正。
- 競合を起こしてた2つのファイルが競合解決されて結果的に同一になるようなアップデートをした時に、
アップデートがエラーで終わっちゃってた。
まあこれも直した。
- _MTN/logがあって、最後が改行で終わってない場合に、
ログメッセージを追加する前に改行を入れるようにした。
これでログメッセージの最後に"MTN:"とか追加されずに済むわけよ。
- データベース書き込み待ち中に不定サイズのでかいバッファを取ってたのをやめた。
これで'commit'の速度とメモリ効率が改善し、
あと'cvs_import'でメモリが足りなくなるのが直った。
- Monotoneのツリー探索コード
('ls unknown'とか'ls missing'とかその辺で使われてるやつ)
がメモリ節約になったよ。特にRaiserFSで顕著なのですよ。
Automateの変更:
- 'mtn automate stdio'でブロックサイズを指定できるようになった。
--automate-stdio-sizeのオプションで制御できるよ。
速度とメモリのトレードオフをいろいろ試してる時に便利。
- 'automate attributes'が新しいフォーマットになって、
もっと詳細な情報が出るようになった。
コードを綺麗に:
- コマンドラインオプションのパースにpoptじゃなくて
boost::program_optionsを使うようにしてみた。
ユーザーから見た変更点は空文字列を設定するのに
--option=""が使えなくなって--option ""を使えということになった。
(このおかげで歴史的経緯という奴で使われなくなったり
バグってるというコードを無くせたよ。)
なんかその他:
- zsh補完スクリプトが大幅にアップデートされた。
(contrib/monotone.zsh_completionを見てね)
いつにもまして超訳。
あとあれだ。UPGRADEは特に何もかわって無かったよ。
*1 何が?
_ [Riko] テクスチャ
テクスチャの拡張ライブラリ側を作った。
中埋めるだけ言ったの誰だよ。あ、いや埋めるだけだったけど、結構時間かかった。
あとなんかモチベーション下がってます。
XNAがかなり良く出来てそうな気がしてねぇ。もうXNAでいいじゃんとか。
ダメダヨ!!どうせC#専用なんだからっ!でもJScriptで書けたらXNAでもいいです。
いやMacで動かないのでだめです。Rubyで動かないのはいいです。JScriptで大変な目に合って喜ぶんで。
え、Shattered Rubyでいいって? いや、インスコめんどいよ。WindowsはともかくMacでは。gemもあんまり好きじゃないし。
つかShattered Rubyはぱっと見良くできてるよね…。いじってないから実際の所はよくわからんけど。
簡単になんか動かすには良さげだよね。
でも真面目にゲーム作るには逆に苦労しそうだぜ*1。 あとOgreについても結構調べないと詰まりそうだしね。
あーはいはい。Riko作りますよー。って誰に言ってんだ。俺にだけど。
*1 根拠は無いのでてきとう