]> git.ipfire.org Git - thirdparty/git.git/commit - tmp-objdir.c
log: clean unneeded objects during `log --remerge-diff`
authorElijah Newren <newren@gmail.com>
Wed, 2 Feb 2022 02:37:29 +0000 (02:37 +0000)
committerJunio C Hamano <gitster@pobox.com>
Wed, 2 Feb 2022 18:02:27 +0000 (10:02 -0800)
commit7b90ab467a658b2fb1b7c15c7d634e06f35f4ef2
tree223e2be7ced848f782226bc6bd984f065f0cf546
parentdb757e8b8d5527c195c461a04ec35d141ddea48e
log: clean unneeded objects during `log --remerge-diff`

The --remerge-diff option will need to create new blobs and trees
representing the "automatic merge" state.  If one is traversing a
long project history, one can easily get hundreds of thousands of
loose objects generated during `log --remerge-diff`.  However, none of
those loose objects are needed after we have completed our diff
operation; they can be summarily deleted.

Add a new helper function to tmp_objdir to discard all the contained
objects, and call it after each merge is handled.

Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/log.c
log-tree.c
revision.h
tmp-objdir.c
tmp-objdir.h