• Duy Nguyen's avatar
    read-cache: split-index mode · 5fc2fc8f
    Duy Nguyen authored
    This split-index mode is designed to keep write cost proportional to
    the number of changes the user has made, not the size of the work
    tree. (Read cost is another matter, to be dealt separately.)
    
    This mode stores index info in a pair of $GIT_DIR/index and
    $GIT_DIR/sharedindex.<SHA-1>. sharedindex is large and unchanged over
    time while "index" is smaller and updated often. Format details are in
    index-format.txt, although not everything is implemented in this
    patch.
    
    Shared indexes are not automatically removed, because it's unclear if
    the shared index is needed by any (even temporary) indexes by just
    looking at it. After a while you'll collect stale shared indexes. The
    good news is one shared index is useable for long, until
    $GIT_DIR/index becomes too big and sluggish that the new shared index
    must be created.
    
    The safest way to clean shared indexes is to turn off split index
    mode, so shared files are all garbage, delete them all, then turn on
    split index mode again.
    Signed-off-by: Duy Nguyen's avatarNguyễn Thái Ngọc Duy <pclouds@gmail.com>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    5fc2fc8f
gitrepository-layout.txt 8.29 KB