[lkml]   [2005]   [Apr]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: Kernel SCM saga..

    On Fri, 8 Apr 2005, Chris Wedgwood wrote:
    > Actually, I could probably make this *much* still faster with a
    > caveat. Given that my editor when I write a file will write a
    > temporary file and rename it, for files in directories where nlink==2
    > I can check chat first and skip the stat of the individual files.

    Yes, doing the stat just on the directory (on leaf directories only, of
    course, but nlink==2 does say that on most filesystems) is indeed a huge
    potential speedup.

    It doesn't matter so much for the cached case, but it _does_ matter for
    the uncached one. Makes a huge difference, in fact (I was playing with
    exactly that back when I started doing "bkr" in BK/tools - three years

    It turns out that I expect to cache my source tree (at least the mail
    outline), and that guides my optimizations, but yes, your dir stat does
    help in the case of "occasionally working with lots of large projects"
    rather than "mostly working on the same ones with enough RAM to cache it

    And "git" is actually fairly anal in this respect: it not only stats all
    files, but the index file contains a lot more of the stat info than you'd
    expect. So for example, it checks both ctime and mtime to the nanosecond
    (did I mention that I didn't worry too much about portability?) exactly so
    that it can catch any changes except for actively malicious things.

    And if you do actively malicious things in your own directory, you get
    what you deserve. It's actually _hard_ to try to fool git into believing a
    file hasn't changed: you need to not only replace it with the exact same
    file length and ctime/mtime, you need to reuse the same inode/dev numbers
    (again - I didn't worry about portability, and filesystems where those
    aren't stable are a "don't do that then") and keep the mode the same. Oh,
    and uid/gid, but that was much me being silly.

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2009-11-18 23:46    [W:0.020 / U:5.712 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site