summaryrefslogtreecommitdiff
path: root/t/t5310-pack-bitmaps.sh
diff options
context:
space:
mode:
authorDerrick Stolee <dstolee@microsoft.com>2020-12-08 22:05:30 (GMT)
committerJunio C Hamano <gitster@pobox.com>2020-12-08 22:49:07 (GMT)
commitf077b0a9860f383a3cd0ce3a0e2a11ff2f27fc65 (patch)
treecc2b355638779725610bd828ace19472d1826303 /t/t5310-pack-bitmaps.sh
parent45f4eeb2919e2c802a6c1f64a2b1c299f7434938 (diff)
downloadgit-f077b0a9860f383a3cd0ce3a0e2a11ff2f27fc65.zip
git-f077b0a9860f383a3cd0ce3a0e2a11ff2f27fc65.tar.gz
git-f077b0a9860f383a3cd0ce3a0e2a11ff2f27fc65.tar.bz2
pack-bitmap-write: better reuse bitmaps
If the old bitmap file contains a bitmap for a given commit, then that commit does not need help from intermediate commits in its history to compute its final bitmap. Eject that commit from the walk and insert it into a separate list of reusable commits that are eventually stored in the list of commits for computing bitmaps. This helps the repeat bitmap computation task, even if the selected commits shift drastically. This helps when a previously-bitmapped commit exists in the first-parent history of a newly-selected commit. Since we stop the walk at these commits and we use a first-parent walk, it is harder to walk "around" these bitmapped commits. It's not impossible, but we can greatly reduce the computation time for many selected commits. | runtime (sec) | peak heap (GB) | | | | | from | with | from | with | | scratch | existing | scratch | existing | -----------+---------+----------+---------+----------- last patch | 88.478 | 53.218 | 2.157 | 2.224 | this patch | 86.681 | 16.164 | 2.157 | 2.222 | Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Taylor Blau <me@ttaylorr.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t5310-pack-bitmaps.sh')
0 files changed, 0 insertions, 0 deletions