summaryrefslogtreecommitdiff
path: root/builtin/config.c
diff options
context:
space:
mode:
authorLibravatar Derrick Stolee <dstolee@microsoft.com>2020-12-08 17:05:30 -0500
committerLibravatar Junio C Hamano <gitster@pobox.com>2020-12-08 14:49:07 -0800
commitf077b0a9860f383a3cd0ce3a0e2a11ff2f27fc65 (patch)
treecc2b355638779725610bd828ace19472d1826303 /builtin/config.c
parentpack-bitmap-write: relax unique revwalk condition (diff)
downloadtgif-f077b0a9860f383a3cd0ce3a0e2a11ff2f27fc65.tar.xz
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 'builtin/config.c')
0 files changed, 0 insertions, 0 deletions