[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 メーリングリストの案内