• S
    Implemented tree reloading in fast-import. · 41e5257f
    Shawn O. Pearce 提交于
    Tree reloading allows fast-import to swap out the least-recently used
    branch by simply deallocating the data structures from memory that
    were associated with that branch.  Later if the branch becomes active
    again it can lazily recreate those structures on demand by reloading
    the necessary trees from the pack file it originally wrote them to.
    
    The reloading process is implemented by mmap'ing the pack into
    memory and using a much tighter variant of the pack reading code
    contained in sha1_file.c.  This was a blatent copy from sha1_file.c
    but the unpacking functions were significantly simplified and are
    actually now in a form that should make it easier to map only the
    necessary regions of a pack rather than the entire file.
    Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
    41e5257f
fast-import.c 38.9 KB