]> git.ipfire.org Git - thirdparty/git.git/commit - list-objects.c
rev-list: add an option to mark fewer edges as uninteresting
authorbrian m. carlson <sandals@crustytoothpaste.net>
Wed, 24 Dec 2014 23:05:39 +0000 (23:05 +0000)
committerJunio C Hamano <gitster@pobox.com>
Mon, 29 Dec 2014 17:57:55 +0000 (09:57 -0800)
commit1684c1b219e02c91655ad929f752f4f864c72faf
tree8c5c581b502587f2f4be3e375a37c43152210fc3
parent8297643fcdb0e0f1edaff1fe026210dc6e073176
rev-list: add an option to mark fewer edges as uninteresting

In commit fbd4a70 (list-objects: mark more commits as edges in
mark_edges_uninteresting - 2013-08-16), we marked an increasing number
of edges uninteresting.  This change, and the subsequent change to make
this conditional on --objects-edge, are used by --thin to make much
smaller packs for shallow clones.

Unfortunately, they cause a significant performance regression when
pushing non-shallow clones with lots of refs (23.322 seconds vs.
4.785 seconds with 22400 refs).  Add an option to git rev-list,
--objects-edge-aggressive, that preserves this more aggressive behavior,
while leaving --objects-edge to provide more performant behavior.
Preserve the current behavior for the moment by using the aggressive
option.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-rev-list.txt
Documentation/rev-list-options.txt
builtin/pack-objects.c
list-objects.c
revision.c
revision.h