Skip to content
  • Nicolas Pitre's avatar
    fix pread()'s short read in index-pack · 838cd346
    Nicolas Pitre authored
    Since v1.6.0.2~13^2~ the completion of a thin pack uses sha1write() for
    its ability to compute a SHA1 on the written data.  This also provides
    data buffering which, along with commit 92392b4a
    
    , will confuse pread()
    whenever an appended object is 1) freed due to memory pressure because
    of the depth-first delta processing, and 2) needed again because it has
    many delta children, and 3) its data is still buffered by sha1write().
    
    Let's fix the issue by simply forcing cached data out when such an
    object is written so it can be pread()'d at leisure.
    
    Signed-off-by: default avatarNicolas Pitre <nico@cam.org>
    Signed-off-by: default avatarShawn O. Pearce <spearce@spearce.org>
    838cd346