author | Junio C Hamano <junkio@cox.net> | |
Thu, 6 Apr 2006 06:24:57 +0000 (23:24 -0700) | ||
committer | Junio C Hamano <junkio@cox.net> | |
Fri, 7 Apr 2006 09:08:38 +0000 (02:08 -0700) | ||
commit | 5379a5c5ee45d1380240a47573c7571de92626bb | |
tree | 78650a6645af528e687a1b86a26f7acae67771da | tree | snapshot |
parent | 9760662f1a7a06516ca249a73e5c1a6fb6c0e26e | commit | diff |
Thin pack generation: optimization.
Jens Axboe noticed that recent "git push" has become very slow
since we made --thin transfer the default.
Thin pack generation to push a handful revisions that touch
relatively small number of paths out of huge tree was stupid; it
registered _everything_ from the excluded revisions. As a
result, "Counting objects" phase was unnecessarily expensive.
This changes the logic to register the blobs and trees from
excluded revisions only for paths we are actually going to send
to the other end.
Signed-off-by: Junio C Hamano <junkio@cox.net>
Jens Axboe noticed that recent "git push" has become very slow
since we made --thin transfer the default.
Thin pack generation to push a handful revisions that touch
relatively small number of paths out of huge tree was stupid; it
registered _everything_ from the excluded revisions. As a
result, "Counting objects" phase was unnecessarily expensive.
This changes the logic to register the blobs and trees from
excluded revisions only for paths we are actually going to send
to the other end.
Signed-off-by: Junio C Hamano <junkio@cox.net>
pack-objects.c | diff | blob | history |