Taskwarriorの支援ツールであるvit
。日本語環境で利用していた所、
おそろしい事件が発生したため、その対処法。
vitはCUIのタスク管理ツールであるTaskwarriorの支援ツールとして開発されており、 簡単にbrew等でインストール可能です。
$ brew install vit
いちいちCUIでt 12 modi pri:H .....
などと記載しなくても簡単にvimのようなインタフェースで対話的に更新が出来ます。
先日、vitを利用してTODOの書き換えを行ったところ、Taskwarriorのデータが壊れる事件が発生。 日本語でアノテーションなどを大量に記載しておりましたが、何やら反応が鈍くなり、 taskwarrior側でeditモードで書き換えた所、完全にご臨終しました。 全く起動もなにもしません。
復旧
Taskwarriorでは基本的にjsonのようなテキスト形式でファイルは管理されています。
~/.task/
今回の例でいえば、見事に.task
配下のファイル達のマルチバイト文字が全て文字化けをして、
nkfで調査したところBINARYと表示されておりました。
もしやと思い、nkfコマンドでutf-8に変換したところ無事に文字化けから復旧。
$ nkf --overwrite -w ~/.task/pending.data
変換後も一部の文字列は完全に壊れていたため、editモードで削除。無事に完全復旧です。 推測の範囲ですが、プログラム側でBINARY -> UTF8に変換保存する過程で途中終了し、 破壊されたように見えたのではないかと思います。
最後に
ワンファイルで管理するTaskwarriorは利便性もありながら、一抹の不安も感じました。 Taskwarriroの元データの定期的なバックアップは忘れずに行いましょう。