[mew-dist 28114] cmew へのリクエスト

Hideyuki SHIRAI ( 白井秀行 ) shirai at example.com
2008年 2月 22日 (金) 14:31:00 JST


白井です。

現状 cmew を動かすと

(1) mv id.db id.db.old
(2) create id.db....

という動きになっていますが、(2) で DB 作っている間は "V" が出来
ません。

手元では 50MByte ぐらいの DB 作っていて、速いマシンは 15〜30分ぐ
らいで終わるのだけど、遅いマシン(Windows だからかな?)は相当時間
がかかるのです。そこで、

(1) create id.db.new....
(2) mv id.db id.db.old
    mv id.db.new id.db

とすれば、"V" が出来ない空白の時間が無視できるようになると思いま
す。そうすると db.old は実用上必要ないかも。

# というか本音を言うと、少々 DB がでかくなっても良いので、差分だ
# けアップデートって出来ないのかなぁ。。。なのですが :-)

-- 
白井秀行 (mailto:shirai at example.com)

--- cmew.orig	2008-02-20 09:00:10.000000000 +0900
+++ cmew	2008-02-22 14:21:20.419314000 +0900
@@ -19,9 +19,9 @@
 ##

 def create_db(db_file)
-  File.rename(db_file, db_file + '.old') if FileTest.exist?(db_file)
+  File.unlink(db_file + '.new') if FileTest.exist?(db_file + '.new')

-  db = SQLite3::Database.new(db_file)
+  db = SQLite3::Database.new(db_file + '.new')
   sql = 'CREATE TABLE mew(id TEXT, path TEXT, parid TEXT, date TEXT);'
   db.execute(sql)
   db.transaction
@@ -120,6 +120,10 @@
   db.execute('CREATE INDEX mew_id ON mew (id, parid);')
 ensure
   db.close
+  if FileTest.exist?(db_file + '.new')
+    File.rename(db_file, db_file + '.old') if FileTest.exist?(db_file)
+    File.rename(db_file + '.new', db_file)
+  end
 end

 # Copyright (C) 2008 Mew developing team.



Mew-dist メーリングリストの案内