[mew-dist 28176] cmew の高速化
Kazu Yamamoto ( 山本和彦 )
kazu at example.com
2008年 3月 15日 (土) 22:14:56 JST
山本です。
UNIX 上での cmew の incremental update をディレクトリのリンクカウントに
よって高速化しようと考えています。
つまり、.mew-mtime が更新されておらず、ハードリンク数が 2 の(子供のディ
レクトリがない)場合、prune したいのです。
Index: cmew
===================================================================
RCS file: /cvsroot/mew/mew/bin/cmew,v
retrieving revision 1.12
diff -c -r1.12 cmew
*** cmew 14 Mar 2008 02:24:55 -0000 1.12
--- cmew 15 Mar 2008 13:12:37 -0000
***************
*** 141,146 ****
--- 141,149 ----
if FileTest.file?(mtime_file) and last_mod > File.mtime(mtime_file).tv_sec
print " (skipped)\n"
skipdir = fpath
+ if File::stat(fpath).nlink == 2
+ Find.prune # includes next
+ end
else
print "\n"
end
Windows でおかしな挙動にならないように、ruby がどいういう値を返すか教え
て下さい。以下のコードが、2 以外を返せば無害なはずです。
ruby -e 'p File::stat(".").nlink'
P.S.
Mac のファイルシステムでは、ファイルの数だけリンク数が増えるので、高速
化できないことが分りました。
--かず
Mew-dist メーリングリストの案内